我有一个像这样的数组:
[
{color: "blue"},
{color: "red", size: "large"},
{color: "green", size: "medium"}
]
显示我如何:
green
{color: "green", size: "x-large"}
答案 0 :(得分:2)
您可以使用函数find
,然后修改找到的对象。
var array = [{color: "blue"}, {color: "red", size: "large"}, {color: "green", size: "medium"}],
found = array.find(({color}) => color === 'green');
if (found) found.size = 'x-large';
console.log(array);

.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:2)
您可以使用map
数组返回数组。
mkdirs
方法创建一个新数组,其结果是在调用数组中的每个元素上调用提供的函数。
map()

您也可以使用find
find()方法返回数组中第一个满足提供的测试函数的元素的值。否则返回undefined。
<强>样本强>
const arr= [
{color: "blue"},
{color: "red", size: "large"},
{color: "green", size: "medium"}
];
let result = arr.map(obj=>{
return obj.color=='green'? {color: "green", size: "x-large"}:obj;
})
console.log(result)
&#13;
答案 2 :(得分:1)
如果需要在现有对象中替换你可以使用forEach并检查颜色,否则如果需要返回一个新数组你可以使用map函数
var oldObj = [{
color: "blue"
},
{
color: "red",
size: "large"
},
{
color: "green",
size: "medium"
}
]
oldObj.forEach(function(item) {
if (item.color === 'green') {
item.size = 'x-medium';
}
});
console.log(oldObj)