如何遍历存储在数组列表中的对象

3

有没有人能够提示我如何使用forEach方法迭代货币数组以获取对象的ID和名称。

  const currencies = [{
        id: 'USD', name: 'US Dollars'
      }, {
        id: 'UGX', name: 'Ugandan Shillings'
      }, {
        id: 'KES', name: 'Kenyan Shillings'
      }, {
        id: 'GHS', name: 'Ghanian Cedi'
      }, {
        id: 'ZAR', name: 'South African Rand'
      }];
var populateCurrencies = (currencies)=>{
    currencies.forEach(function(id,name){
     

    }
  }
  


1
我们在你的其他问题中没有向你展示过如何做吗? - Nick Parsons
你想在每个对象中读取id和name吗? - Dananjaya Ariyasena
这正是您所寻找的 https://dev59.com/31kS5IYBdhLWcg3wECuU#40416380 将 obj.xobj.y 更改为 obj.idobj.name。在这种情况下,您可以接受重复。 - adiga
显示剩余3条评论
3个回答

4

可能是因为你在forEach回调中的参数名称不准确而感到困惑。

.forEach回调函数的第一个参数是你当前迭代的元素。在你的情况下,它是你从currencies数组中当前所在的对象。它不是像你所命名的id

.forEach回调的第二个参数是索引,然而,你并不需要它,因为你所需的一切都是对象(即第一个参数)

因此,如果第一个参数是对象,你可以使用点符号在每次迭代中访问其nameid属性。

参见下面的示例:

const currencies = [{id:"USD",name:"US Dollars"},{id:"UGX",name:"Ugandan Shillings"},{id:"KES",name:"Kenyan Shillings"},{id:"GHS",name:"Ghanian Cedi"},{id:"ZAR",name:"South African Rand"}];

const populateCurrencies = (currencies) => {
  currencies.forEach(function(obj) {
    console.log(obj.name, obj.id);
  });
}

populateCurrencies(currencies)


3

在foreach迭代器中添加花括号提取传递给迭代器的项的属性

const currencies = [{
        id: 'USD', name: 'US Dollars'
      }, {
        id: 'UGX', name: 'Ugandan Shillings'
      }, {
        id: 'KES', name: 'Kenyan Shillings'
      }, {
        id: 'GHS', name: 'Ghanian Cedi'
      }, {
        id: 'ZAR', name: 'South African Rand'
      }];

    currencies.forEach(function({id,name}){
     console.log(id,name);

    })


OP看起来像是初学者。你应该避免解构。 - adiga
OP 在使用解构参数时有误,因此更好的修复方法是使用花括号。同时混合使用 const 和 var 是一个不好的习惯,map 比 forEach 更受欢迎,提取与原始数组形式相同的数组可能是无用的。我只是试图指导他编写可行的代码。 - Mosè Raguzzini

0

const currencies = [{
        id: 'USD', name: 'US Dollars'
      }, {
        id: 'UGX', name: 'Ugandan Shillings'
      }, {
        id: 'KES', name: 'Kenyan Shillings'
      }, {
        id: 'GHS', name: 'Ghanian Cedi'
      }, {
        id: 'ZAR', name: 'South African Rand'
      }];
      
currencies.forEach(currency =>    
     console.log(currency.id + " : " + currency.name)
)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接