我有一个对象和一个数组:
var elementsArr = [];
var elements = {
polygon: 734,
infoContent: "huhu",
id: 0
}
我将有多个“元素”,并将每个“元素”插入“elementsArr”。
for(var i=0; i<20; i++){
elements.id = id +=1;
elementsArr.push(elements);
}
我现在的问题是如何在数组 elementsArr 中访问对象元素中的特定“id”并将其插入另一个数组。
我试过了,但似乎不起作用:
var ids = [];
for(var m=0; m<elementsArr.length; m++){
if(elements.id == elementsArr[m]){
ids.push(elements.id);
}
我该怎么做?
最佳答案
您的代码一遍又一遍地将同一个对象插入数组。
解决这个问题的一种方法是编写一个函数来获取新元素:
function Element(id) {
return {
polygon: 734,
infoContent: "huhu",
id: id
};
}
for(var i=0; i<20; i++){
elementsArr.push(Element(i));
}
如果有很多元素,并且“id”值都是相对较小的数字,你最好存储元素,这样“id”也是索引:
for (var i = 0; i < 20; i++)
elementsArr[i] = Element(i);
要获取“id”为17的元素,则:
var element17 = elementsArr[17];
但是,如果你真的想搜索,你可以使用 .find()
:
var element17 = elementsArr.find(function(elem) { return elem.id === 17; });
或者一个简单的循环:
for (var i = 0; i < elementsArr.length; ++i) {
if (elementsArr[i].id === 17) {
// found it!
}
}
您可以通过简单调用 .map()
从数组中提取“id”值:
var ids = elementsArr.map(function(elem) { return elem.id; });
或另一个for
循环:
var ids = [];
for (var i = 0; i < elementsArr.length; ++i)
ids.push(elementsArr[i].id);
关于javascript - 如何访问数组中对象中的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32830689/