array={
posts:[
{
isReported:false,
id:1,
title:'عنوان المقال القادم من الخادم رقم 1',
img:'assets/img/1.jpg',
userId:31,
userName:'محمود عبد السلام',
userImg:'assets/img/1.jpg'
},
....
],
....
}
我想编辑isReported
的值,例如id = 3
,并将其设置为true。
怎么做?
答案 0 :(得分:1)
(function() {
const data = {
posts: [{
isReported: false,
id: 1,
title: 'عنوان المقال القادم من الخادم رقم 1',
img: 'assets/img/1.jpg',
userId: 31,
userName: 'محمود عبد السلام',
userImg: 'assets/img/1.jpg'
}, {
isReported: false,
id: 2,
title: 'عنوان المقال القادم من الخادم رقم 1',
img: 'assets/img/1.jpg',
userId: 31,
userName: 'محمود عبد السلام',
userImg: 'assets/img/1.jpg'
}, {
isReported: false,
id: 3,
title: 'عنوان المقال القادم من الخادم رقم 1',
img: 'assets/img/1.jpg',
userId: 31,
userName: 'محمود عبد السلام',
userImg: 'assets/img/1.jpg'
}]
};
const post3 = data.posts.filter(post => post.id === 3)[0];
if (post3) {
console.log(post3);
post3.isReported = true;
console.log(post3);
}
}());
注意,我将array
重命名为data
,因为它不是数组,而是具有我们访问的名为posts的属性的对象。
我们使用filter
方法(Array.prototype.filter)来查找我们感兴趣的数组中的项目。
由于filter
返回一个数组,我们访问第一个元素。
如果filter
找不到任何匹配的项目,它会返回一个空数组,访问第一个元素将返回undefined
,所以我们在操作之前检查它。
在较新的运行时中,我们可以使用find
方法
const post3 = data.posts.find(post => post.id === 3);
答案 1 :(得分:-1)
你可以这样做:
array.posts.filter(item= > item.id === 3)[0].isReported = true;