true로 방금 싶어 설정 isCompletes : 당신이 원하는 경우
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);
이 너무 elems :
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
:
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);
을 그리고 당신은 모두를 원하는 경우
비동기 구현이 정말로 필요한 경우 (저는 그렇게 생각하지 않습니다) :
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);
:'todoItem.id'이 – Thomas