javascript - 将键值对象转换为仅值数组

标签 javascript arrays json mongodb mongoose

在 Javascript 中将 key : value 对象转换为仅值数组的最佳方法是什么?我正在尝试使用 $in 执行 Mongoose 查询。据我所知,我需要对此进行改造:

[ { "key": "54ce3bef2d1ce6a82c90ccc3" }, { "key": "54d290a23eff5da01d05fe53" } ]

对此:

[ "54ce3bef2d1ce6a82c90ccc3", "54d290a23eff5da01d05fe53" ]

我应该循环第一个,然后在循环中创建第二个吗?或者我应该使用一些 map 函数(例如 $.map())?在客户端执行此操作是否明智,还是应该在服务器端完成所有工作?源对象可以增长多达几千对。

最佳答案

您可以使用Array.prototype.map对已知键快速执行此操作

var arr = [{"key": "54ce3bef2d1ce6a82c90ccc3"}, {"key": "54d290a23eff5da01d05fe53"}];

arr = arr.map(function (e) {return e.key;});
// ["54ce3bef2d1ce6a82c90ccc3", "54d290a23eff5da01d05fe53"]
<小时/>

如果 key 未知,但您知道每个项目只有一个,请与 for..in 结合使用

arr = arr.map(function (e) {
    var key;
    for (key in e) // may also want to Object.prototype.hasOwnProperty here
        return e[key];
});
// ["54ce3bef2d1ce6a82c90ccc3", "54d290a23eff5da01d05fe53"]

关于javascript - 将键值对象转换为仅值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28744944/

相关文章:

mysql - 如何在 MYSQL 行中存储二维数组?

javascript - 跨服务 Angular 共享枚举

javascript - 这个 snap svg 插件有什么问题吗?

c# - 挑战 - Ninjascript C# 接口(interface)与 C++ dll

javascript - 为什么 Array.some() 方法表现不同?

java - json解析问题

java - 通过 AJAX 调用将 JSON 对象列表传递给 Controller

javascript - jQuery 在 JSON 中搜索特定值

javascript - jQuery 动画不适用于我的导航栏

javascript - NodeJs JSON 解析问题