如何在javascript中更改数组中的元素并将其存储在新数组中
我是javascript新手 我有一个对象数组,比如如何在javascript中更改数组中的元素并将其存储在新数组中,javascript,arrays,Javascript,Arrays,我是javascript新手 我有一个对象数组,比如 arr=[{id:1,likes:10},{id:3,likes:13},{id:3,likes:1}] what if i want to increase the value of likes by 1 where id is 1 and store the resulting array in arr2 ??? arr2=[{id:1,likes:11},{id:3,likes:13},{id:3,likes:1}] 你可以这样
arr=[{id:1,likes:10},{id:3,likes:13},{id:3,likes:1}]
what if i want to increase the value of likes by 1 where id is 1 and store the resulting array in arr2 ???
arr2=[{id:1,likes:11},{id:3,likes:13},{id:3,likes:1}]
你可以这样做
const arr=[{id:1,likes:10},{id:3,likes:13},{id:3,likes:1}]
常数arr2=[]
设obj={}
for(设i=0;imap()
const arr=[{id:1,likes:10},{id:3,likes:13},{id:3,likes:1}]
常量arr2=arr.map(i=>(i.id==1&&(i.likes+=1),i))
console.log(arr2)
或者你希望id是动态的
const increment_likes = (id, old) => old.map(obj =>
obj.id === id ?
{ id: obj.id, likes: obj.likes + 1 } :
obj
);
const arr2 = increment_likes(1, arr);
你可以这样做
arr=[{id:1,likes:10},{id:3,likes:13},{id:5,likes:1}]
function increase_id_likes_by_one(id){
for(i=0;i<arr.length;i++){
if (arr[i]['id'] == id) {
arr[i]['likes'] += 1;
}
}
console.log(arr);
}
increase_id_likes_by_one(1);
increase_id_likes_by_one(3);
increase_id_likes_by_one(5);
increase_id_likes_by_one(5);
arr=[{id:1,likes:10},{id:3,likes:13},{id:5,likes:1}]
功能增加一个(id){
对于(i=0;i您可以使用Array.map()
:
var-arr=[{id:1,likes:10},{id:3,likes:13},{id:3,likes:1}];
变量id=1
var res=arr.map((obj)=>{
obj.id==1?obj.likes++:obj.likes;
返回obj;
});
console.log(res);
映射的内联版本
方法:
var-arr=[{id:1,likes:10},{id:3,likes:13},{id:3,likes:1}];
变量id=1
var res=arr.map({id,likes})=>({
身份证件
喜欢:(id==1?++likes:likes)
}));
console.log(res);
您可以尝试使用和:
var-arr=[{id:1,likes:10},{id:3,likes:13},{id:3,likes:1}];
var arr2=JSON.parse(JSON.stringify(arr)).map(i=>{
如果(i.id==1)i.likes+=1;
返回i;
});
console.log(arr);//未经修改的原始数组
console.log(arr2);//修改后的新数组
我正在尝试使用扩展运算符(…)来完成此操作请编辑您的问题并添加更多详细信息,如什么问题阻止了您?下选者,请敢于评论,有什么问题,以便我知道,我认为我的答案是正确的。虽然我没有下选您的回答,但您的代码在我看来很干净,但只是一个建议,请将结果存储在问题中提到的新数组中。!还有一件事,请尝试使用ES6标准,根据使用情况使用const/let,而不是传统的varHappy来帮助您@Narendra@NarendraChouhan您的答案是错误的,因为它也改变了原始数组。
arr=[{id:1,likes:10},{id:3,likes:13},{id:5,likes:1}]
function increase_id_likes_by_one(id){
for(i=0;i<arr.length;i++){
if (arr[i]['id'] == id) {
arr[i]['likes'] += 1;
}
}
console.log(arr);
}
increase_id_likes_by_one(1);
increase_id_likes_by_one(3);
increase_id_likes_by_one(5);
increase_id_likes_by_one(5);