Каков наиболее эффективный/элегантный способ повторения значений объектов в JavaScript?Итерирование значений объектов в JavaScript
В качестве примера предположим, что следующий объект: let myObj = {p1: "v1", p2: "v2"}
Каков наиболее эффективный/элегантный способ повторения значений объектов в JavaScript?Итерирование значений объектов в JavaScript
В качестве примера предположим, что следующий объект: let myObj = {p1: "v1", p2: "v2"}
ECMAScript 2017:
Если ваша целевая платформа поддерживает Object.values:
Object.values(myObj).forEach(value => /* do something */)
Если вам нужны имена свойств, а также, вы можете использовать Object.entries в сочетании с array 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
}
}
Для полноты также выведите 'for (let [ключ, значение] объекта Object.entries (myObj))'. –
Попытайтесь найти «свойства итерации объекта stackoverflow итерации». –
@torazaburo Я сделал, и результаты либо устарели, либо неполны, либо обсуждают рамки. Обратите внимание, что я также опубликовал ответ на свой вопрос, пытаясь обобщить возможные решения в современных ES. –
http://stackoverflow.com/questions/8312459/iterate-through-object-properties также имеет полезные ответы, хотя некоторые из них довольно глубоко погребены. –