如何从对象数组调用键数组
how to call an array of keys from an array of objects?
如果我有以下数组
someArray = [{id: 1, coordinates: {latitude: 1212, longitude: 13324}},{id: 2, coordinates: {latitude: 1314, longitude: 15151}}]
是否有调用someArray
的方法,这样我就可以得到坐标键的数组,而不必创建一个新的数组?someArray。坐标没有定义。预期的输出:
[{latitude: 1212, longitude: 13324}, {latitude: 1314, longitude: 15151}]
您可以使用Array#map
(spec, MDN):
someArray = someArray.map(function(entry) {
return entry.coordinates;
});
Array#map
从你传递给它的迭代函数返回的项中产生一个新的数组。
var someArray = [{id: 1, coordinates: {latitude: 1212, longitude: 13324 }}, {id: 2, coordinates: {latitude: 1314,longitude: 15151}}];
snippet.log("Before:");
snippet.log(JSON.stringify(someArray));
someArray = someArray.map(function(entry) {
return entry.coordinates;
});
snippet.log("After:");
snippet.log(JSON.stringify(someArray));
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
您可以尝试使用map函数:
someArray.map(function(current, index, array){ array[index] = current.coordinates});
这将修改您的原始代码。您可以将其作为另一个数组,例如:
var coordinates = [];
someArray.map(function(current){coordinates.push(current.coordinates)});
是的,对不起,我忘了,最简单的是:
var coordinates = someArray.map(function(current) { return current.coordinates; });
或者你可以自己写:
function getCoordinates(objectArray) {
var coordinates = [];
for (var i in objectArray) {
var current = objectArray[i];
coordinates.push(current.coordinates);
}
}
var onlyCoordinates = getCoordinates(someArray);
编辑:只需使用以下代码段
var someArray = [{id: 1, coordinates: {latitude: 1212, longitude: 13324}},{id: 2, coordinates: {latitude: 1314, longitude: 15151}}];
var i = -1;
while(someArray[++i]){
someArray[i] = someArray[i].coordinates;
}
document.write("<pre>"+JSON.stringify(someArray,0,3)+"</pre>");
相关文章:
- 为什么从数组调用时收到非法调用
- JavaScript:从数组调用函数
- 可以将定义的变量放入数组调用中
- 使用包含参数数组的数组调用函数,而不是仅列出数组
- Javascript:从对象数组调用函数
- 下划线:对引发错误的数组数组调用 _.sample
- Javascript 从数组调用对象方法
- 在 Javascript 中使用 setTimeout 从数组调用函数
- 是什么导致我的绘制数组调用无效操作
- 使用变量数组调用函数
- Javasctipt 从数组调用对象的函数
- AngularJS多维数组调用ng repeat
- 如果使用参数数组调用,则日期会更改结果
- 将对象分配给数组,然后根据位置从数组调用它
- 可观察数组——调用webservice列出所有记录并将其绑定到一个表
- 如何从对象数组调用键数组
- 从数组调用函数
- 我可以/应该通过数组调用firebaseRef.set吗
- 数组调用返回未定义
- 从数组调用 JSON 属性