Javascript标记活动函数

Javascript标记活动函数,javascript,Javascript,我试图实现一个函数“markActive”,当给它一个对象列表和一个id时,它返回相同的列表,但相应的对象标记为active,例如 var list = [ { id: 1, active: false }, { id: 2, active: false }, { id: 3, active: true }, { id: 4, active: false } ]; 当函数被调用时 mar

我试图实现一个函数“markActive”,当给它一个对象列表和一个id时,它返回相同的列表,但相应的对象标记为active,例如

var list = [
           { id: 1, active: false },
           { id: 2, active: false },
           { id: 3, active: true  },
           { id: 4, active: false }
         ];
当函数被调用时

markActive(list, 2);
应返回:

[
{ id: 1, active: false },
{ id: 2, active: true  },
{ id: 3, active: false },
{ id: 4, active: false }
]
我尝试了很多循环,但每次都没有定义,
提前谢谢。

您可以通过检查
id
来迭代数组并将
设置为活动状态

函数标记活动(数组,id){
array.forEach(函数(o){
o、 活动=o.id==id;
});
退货清单;
}
var list=[{id:1,active:false},{id:2,active:false},{id:3,active:true},{id:4,active:false}];
日志(markActive(list,2))
。作为控制台包装{最大高度:100%!重要;顶部:0;}
使用
数组#forEach

var列表=[{
id:1,
活动:错误
}, {
id:2,
活动:错误
}, {
id:3,
主动:正确
}, {
id:4,
活动:错误
}];
函数标记活动(列表,id){
列表.forEach(函数(el){
如果(el.id==id){
el.active=真;
}否则{
el.active=假;
}
});
}
markActive(列表,2);

控制台日志(列表)将所有内容设置为非活动,除非id应设置为活动,然后执行该操作

function markActive(list, item) {
    list.forEach(function(element) {
    if (element.active) {
            element.active = false;
        }
    if (element.id === item) {
    console.log(item)
        element.active = true;
    }
  })
}