带有对象的粗箭头

时间:2018-06-21 08:34:45

标签: javascript ecmascript-6

有没有办法在对象上使用粗箭头?

以下代码在控制台中打印出数组“ test”的内容。

//With array
let test = [1, 2, 3, 4];
test.forEach(number => console.log(number));

我正在寻找一种具有相同输出,但将“ test”作为对象而非数组的方法(如下所示)。有(相对)简单的方法吗?

//With object
let test = {
  a: 1,
  b: 2,
  c: 3,
  d: 4
}
test.forEach(number => console.log(number));

5 个答案:

答案 0 :(得分:6)

有两种方法可以做到这一点:

Object.keys(test).forEach(key => console.log(test[key]));

Object.keys是最早的方法,自ES5起可用。

但是,当您使用ES6方法时,您可能可以使用更新的方法:

Object.keys(test) // ['a', 'b', 'c', 'd']
Object.values(test) // [1, 2, 3, 4]
Object.entries(test) // [['a', 1], ['b', 2], ['c', 3], ['d', 4]]

答案 1 :(得分:2)

数组方法不能在对象上使用。使用Object.keys获取对象键的数组,然后使用数组方法forEach

let test = {
  a: 1,
  b: 2,
  c: 3,
  d: 4
}
Object.keys(test).forEach(number => console.log(test[number]));

答案 2 :(得分:1)

对于数组,您可以使用array.forEach();对于对象,您需要使用Object.values(object).forEach()作为值,Object.keys(object).forEach()作为对象键。 :D

//With array
var test = [1, 2, 3, 4];
console.log("Array");
test.forEach(number => console.log(number));

console.log("Obejct");
//With object
var testObj = {
  a: 1,
  b: 2,
  c: 3,
  d: 4
}
Object.values(testObj).forEach(number => console.log(number));

答案 3 :(得分:0)

您有以下选择

1)Object.keys()

test = {
  a: 1,
  b: 2,
  c: 3,
  d: 4
}

Object.keys(test).forEach(key => console.log(test[key]))

Object.keys返回调用它的对象的键数组。

2)Object.values()

test = {
   a: 1,
   b: 2,
   c: 3,
   d: 4
}

Object.values(test).forEach(value=> console.log(value))

Object.values返回一个数组,其元素是在对象上找到的可枚举的属性值。

答案 4 :(得分:0)

或者您可以使用Object.values()

let test = {
  a: 1,
  b: 2,
  c: 3,
  d: 4
}
Object.values(test).forEach(number => console.log(number));