Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将键、值对象转换为仅值数组_Javascript_Arrays_Json_Mongodb_Mongoose - Fatal编程技术网

Javascript 将键、值对象转换为仅值数组

Javascript 将键、值对象转换为仅值数组,javascript,arrays,json,mongodb,mongoose,Javascript,Arrays,Json,Mongodb,Mongoose,在Javascript中将key:value对象转换为仅值数组的最佳方法是什么?我正在尝试使用$in执行猫鼬查询。据我所知,我需要改变这一点: [ { "key": "54ce3bef2d1ce6a82c90ccc3" }, { "key": "54d290a23eff5da01d05fe53" } ] 为此: [ "54ce3bef2d1ce6a82c90ccc3", "54d290a23eff5da01d05fe53" ] 我应该循环第一个,然后在循环中创建第二个吗?或者我应该使用一些m

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

[ { "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"]

如果密钥未知,但您知道每个项目只有一个,请在

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

这是一个艰难的决定,但我的第一个想法是做一个循环,但你需要担心重复吗?下面并没有说明这一点

var arrayToStoreValues = [];
$.each(queryReturnSet,function(i,e){
     arrayToStoreValues[i] = e.key;
});

没有重复的。我决定使用
arr.map
方法。但仍不确定从性能角度看哪一个更好。也不确定在角度控制器或节点端这样做更好。