javascript - 如何访问数组中对象中的数组?

标签 javascript arrays object

我有一个对象和一个数组:

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/

相关文章:

javascript - 连接数组和整数的数组的最佳方法

arrays - 在不扭曲数据的情况下正确 reshape matlab中的多维N-D数组

javascript - Highstock - 自定义tickPositioner和tickInterval

javascript - 在 React.js 中调用同一页面中的多个组件

javascript - 具有新 ID 的重复 Div

Java-ArrayIndexOutOfBoundsException 错误

java - 我可以访问最终对象的方法吗?

java - 如何创建动态对象列表

javascript - 基于 "category"属性和 sum "amount"属性减少对象数组

javascript - 如何列出 npm 用户安装的包