不能使用 forEach 或 map 函数迭代 map

问题描述 投票:0回答:3

我正在尝试使用 EcmaScript 迭代以下地图:

const rows =
  {
    "Bird": 2,
    "Cat": 6,
    "Dog": 11
  }

然而,虽然有一些方法可以解决使用 for 循环的问题,但我找不到使用 forEach 或 map 函数的合适解决方案。这是几个尝试之一:

rows.map((value, key) => {
    console.log(value, key)
})

那么,我缺少什么?

javascript reactjs angular ecmascript-6 ecma
3个回答
0
投票

迭代一个对象,你可以使用

Object.entries
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries

const rows = {
  "Bird": 2,
  "Cat": 6,
  "Dog": 11
}
  
Object.entries(rows).forEach(([key, value]) => console.log({ key, value }))


0
投票

如果你真的想使用 .map 你可以用 Object.entries 这样做

const rows =
  {
    "Bird": 2,
    "Cat": 6,
    "Dog": 11
  }
  
const result = Object.entries(rows).map(x => {
  console.log("key: " + x[0] + " value: " + x[1]);
})


-1
投票

你在对象上使用 map() 函数。你必须使用 for in 循环遍历一个对象。

const rows={
"bird”:2,
"cat” :6,
"dog" 11
}
for(key in rows){
let value;
value=rows[key];
console.log(` ${key}in rows=> ${value}`)
}

© www.soinside.com 2019 - 2024. All rights reserved.