我有以下内容:
const data = [
{ name: "Santa"
age: 34
},
{ name: "John"
age: 23
}
]
我应该通过map()
函数编辑对象元素。
例如:我想将所有的age分别设置为68和46。(×2)。
我尝试解决,但我失败了。
data = data.map(e => {
e.age *= 2;
});
我有以下内容:
const data = [
{ name: "Santa"
age: 34
},
{ name: "John"
age: 23
}
]
我应该通过map()
函数编辑对象元素。
例如:我想将所有的age分别设置为68和46。(×2)。
我尝试解决,但我失败了。
data = data.map(e => {
e.age *= 2;
});
你需要使用一个返回语句,并且使用let
因为你的数据实际上是不变的:
let data = [{
name: "Santa",
age: 34
},
{
name: "John",
age: 23
}
]
data = data.map(e => {e.age *= 2; return e;});
console.log(data)
data = data.map(e => {
return {..e, age: e.age * 2};
});
如果你使用 return e;
,那么你的逻辑将是正确的。
data = data.map(e =>{e.age *= 2; return e})
let data = [
{ name: "Santa",
age: 34
},
{ name: "John",
age: 23
}
]
data = data.map(e =>{e.age *= 2; return e})
console.log(data);
const data = [
{ name: "Santa", age: 34 },
{ name: "John", age: 23 }
];
console.log( data.map( item => ({
...item,
age: item.age + 10 // modify here
})))
data.forEach( item => {
item.age = item.age + 10 // modify direct object
})
console.log( data)
map()
函数中,修改每个对象的年龄属性,然后返回整个对象:
const data = [
{ name: "Santa",
age: 34
},
{ name: "John",
age: 23
}
]
let resp = data.map(obj => {
obj.age *= 2
return obj
});
console.log(resp)
两个小错误:1)您需要在对象值后放置“,”,并且需要一个返回值。
var data = [
{ name: "Santa",
age: 34
},
{ name: "John",
age: 23
}
]
data.map(e=> {
e.age *= 2;
});
console.log(data);
尝试使用map
const data = [ { name: "Santa", age: 34 }, { name: "John", age: 23 }]
console.log(data.map(res=>({...res, age: res.age*2})))
age
属性。因此,更常规的map()
使用方式应该是不可变的,比如这个。 - Yevhen Horbunkovmap()
替换为forEach()
并使用更合适的工具解决问题。 - Yevhen Horbunkov