当前位置: 首页 > 知识库问答 >
问题:

迭代对象及其子对象的属性[重复]

全流觞
2023-03-14

如何迭代对象及其子对象的属性?我在中使用了,但无法获取歌曲信息:/

let discos = [];

let disco1 = {
    discoName: 'name disco1',
    band: 'band name',
    code: 1,
    songs: [
        { 'songName': 'Song Name',
          'duration': 200,
       },
    ],
};
let disco2 = {
    discoName: 'name disco 2',
    band: 'band name 2',
    code: 1,
    songs: [
        { 'songName': 'Song Name 0',
          'duration': 200,
       },
    ],
};

discos.push(disco1,disco2);

for (let disco in discos){
    console.log(discos[disco].discoName);
}

共有1个答案

叶展
2023-03-14

如果您想要一个真正的递归解决方案,您将需要使用递归,因为这不能使用for。。在中:

let discos = [];

let disco1 = {
    discoName: 'name disco1',
    band: 'band name',
    code: 1,
    songs: [
        { 'songName': 'Song Name',
          'duration': 200,
       },
    ],
};
let disco2 = {
    discoName: 'name disco 2',
    band: 'band name 2',
    code: 1,
    songs: [
        { 'songName': 'Song Name 0',
          'duration': 200,
       },
    ],
};

discos.push(disco1,disco2);

const visitRec = (obj, visitor) => {
  if (obj instanceof Array) {
    obj.forEach(e => visitRec(e, visitor));
  } else if (typeof obj == 'object') {
    for (let key in obj) {
      visitRec(obj[key], visitor);
    }
  } else {
    visitor(obj);
  }
}

visitRec(discos, console.log);
 类似资料:
  • 我想要得到一个这样的对象: 通过这样编码: 但我总是得到以下几点:

  • 我有一个要迭代通过的JSON对象。 我正在使用映射这些值,我认为这是处理对象的正确方法: 但是,当我希望对象返回时,上面的返回以下内容: 为什么它返回的是值,而不是对象?

  • 我正在寻找一种更好的方法来迭代一个对象并显示它的内容。 FormController: DB.Class函数(): 窗体视图: Db连接: 多谢您提前帮忙!

  • 问题内容: 有没有一种方法来获取数组的迭代器?像这样: 问题答案: 您可以使用: 它只是将数组包装在列表实现中,以便您可以在其上调用方法。 请注意,这种方法仅适用于对象数组。对于原始数组,您将必须实现自己的迭代器(例如,使用匿名类)。 从Java 8开始,您还可以使用开箱即用的迭代器(并且如果是或,也可以使此代码进行编译: 尽管您将无法使用原始数据类型,并且因为没有相应的流实现。但是,您可以使用以

  • 本文向大家介绍如何使用jQuery迭代JavaScript对象的属性?,包括了如何使用jQuery迭代JavaScript对象的属性?的使用技巧和注意事项,需要的朋友参考一下 使用该方法可以迭代JavaScript对象的属性。 上面的照片- 将用于任何集合遍历,无论是一个对象或一个数组。我们来看另一个例子- 示例 输出结果 上面的照片-

  • 我发现自己经常遇到这种模式。我有一个从api中返回的对象数组,我只需要操作所有对象中的一个属性。 有没有办法使用ES6/Babel或Typescript让该模式更具声明性? 寻找一些巧妙的破坏技巧或类似的东西。