gpt4 book ai didi

javascript - 如何检查数组中的对象是否具有参数 ID 中存在的 ID 属性?

转载 作者:行者123 更新时间:2023-11-28 17:59:32 25 4
gpt4 key购买 nike

我需要帮助如何执行此操作,我有待办事项,并且如果其 ID 在参数中,我想更新数组中的待办事项 isComplete 属性,类似于以下代码:

const todos = [{id: 1, text:"one",isComplete:false},{id:2,text:"two",isComplete:false},{id:3,text:"three",isComplete:false}];

const myArgs = [2,3];
const completeAllTodos = todos.filter(todoItem.id => myArgs.includes(todoItem.id));
completeAllTodos.map( todoItem => todoItem.isComplete = true);

在completeAllTodos 上,我想返回参数数组上存在ID 的todos 对象,然后将completeAllTodos isComplete 属性更新为true。我也想异步执行,但我是 javascript 新手。我已经思考了几个小时如何去做,但我无法让我的大脑做我想做的事。有帮助吗?

最佳答案

如果您只想将 isCompletes 设置为 true:

const todos = [{id: 1, text:"one",isComplete:false},{id:2,text:"two",isComplete:false},{id:3,text:"three",isComplete:false}];
myArgs = [2,3];
todos.forEach(el=>myArgs.indexOf(el.id)+1?el.isComplete=true:0);

如果你也想要这个元素:

const todos = [{id: 1, text:"one",isComplete:false},{id:2,text:"two",isComplete:false},{id:3,text:"three",isComplete:false}];
myArgs = [2,3];
var result=todos.filter(el=>myArgs.indexOf(el.id)+1).map(el=>!(el.isComplete=true)||el);

如果你两者都想要:

const todos = [{id: 1, text:"one",isComplete:false},{id:2,text:"two",isComplete:false},{id:3,text:"three",isComplete:false}];
myArgs = [2,3];
var results=todos.reduce((arr,el)=>myArgs.indexOf(el.id)+1?(el.isComplete=true,arr.push(el),arr):arr);

http://jsbin.com/wopexiwime/edit?console

如果您确实需要异步实现(我不这么认为):

function forEach(arr,call,i=0){
if(i>=arr.length){
return;
}
call(arr[i],i);
setTimeout(forEach,0,arr,call,i+1);
}

function filter(arr,call,finalcall,i=0,res=[]){
if(i>=arr.length){
return finalcall(res);
}
if(call(arr[i],i)) res.push(arr[i]);
setTimeout(filter,0,arr,call,finalcall,i+1,res);
}

function map(arr,call,finalcall,i=0,res=[]){
if(i>=arr.length){
return finalcall(res);
}
res.push(call(arr[i],i));
setTimeout(map,0,arr,call,finalcall,i+1,res);
}

map([1,2,3,4],(e,i)=>e+i,console.log);

关于javascript - 如何检查数组中的对象是否具有参数 ID 中存在的 ID 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43825366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com