【问题标题】:Javascript: cycle through the same property of several objectsJavascript:循环遍历多个对象的相同属性
【发布时间】:2017-10-10 18:05:20
【问题描述】:

对不起,如果这是一个愚蠢的问题,但我对此有点陌生。我有几个对象(object1、object2、object3...),每个对象都具有相同的属性(property1、property2、property3...),如下所示:

var object1 = {color: red, length: 1, width: 6};
var object2 = {color: blue, length: 4, width: 2};
var object3 = {color: green, length: 4, width: 5};

如何创建一个for 循环,该循环遍历每个对象的相同属性,而不是一个对象的每个属性?

谢谢!

【问题讨论】:

  • 嵌套循环。把它想象成一个二维数组。或者根据需要使用 map/reduce/filer 抽象。
  • 您需要这些对象的数组或对这些对象的某种引用才能通过
  • 将这些对象放在一个数组中(而不是多个带有编号名称的变量),并使用简单的for … of 循环

标签: javascript object for-loop


【解决方案1】:

您可以先迭代属性,然后再迭代数组中的对象。

var object1 = { color: 'red', length: 1, width: 6 },
    object2 = { color: 'blue', length: 4, width: 2 },
    object3 = { color: 'green', length: 4, width: 5 };

['color', 'length', 'width'].forEach(function (k) {
    [object1, object2, object3].forEach(function (o) {
        console.log(o[k]);
    });
});
.as-console-wrapper { max-height: 100% !important; top: 0; }

【讨论】:

  • 请注意,如果您知道所有对象都具有相同的属性,则可以将硬编码的属性替换为Object.keys(object1)
  • @juvian,但是,您可以为键使用 const 数组,无需一遍又一遍地渲染键。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-26
  • 2021-11-20
  • 2016-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-15
相关资源
最近更新 更多