在JavaScript中迭代对象值

时间:2016-09-13 06:09:40

标签: javascript

在JavaScript中迭代对象值的最有效/最优雅的方法是什么?

例如,假设以下对象:let myObj = {p1: "v1", p2: "v2"}

1 个答案:

答案 0 :(得分:1)

ECMAScript 2017:

如果您的目标平台支持Object.values

Object.values(myObj).forEach(value => /* do something */)

如果您还需要属性名称,则可以将Object.entriesarray destructuring结合使用:

Object.entries(myObj).forEach(([key, value]) => /* do something */)

ECMAScript 5:

如果您需要向后兼容并且不想使用polyfill:

Object.keys(myObj).map(prop => myObj[prop]).forEach(value => /* do something */)

旧版本:

请注意,for...in语句也会迭代原型的属性,因此您需要使用Object.prototype.hasOwnProperty对其进行过滤。

for (var key in myObj) {
  if (myObj.hasOwnProperty(key)) {
    var value = myObj[key];
    // do something
  }
}