给出以下数据:
const array = [
{name: one, completed: false},
{name: two, completed: false},
{name: three, completed: false},
{name: four, completed: false},
]
const arrayTwo = [
{name: one, completed: true},
{name: two, completed: true},
{name: three, completed: false},
{name: four, completed: false},
]
我需要能够返回:
//from array
[
{name: one, completed: false}
]
//from arrayTwo
[
{name: one, completed: true},
{name: two, completed: true},
{name: three, completed: false},
]
所以问题是:我如何映射/过滤/减少这些数组以返回所有项目,包括第一个项目,其参数条件为:
completed: false
......或者如果他们都满足以下条件,则为第一个:
completed: false
一如既往,所有方向都非常感谢,所以提前感谢!
const result = array.slice(0, array.findIndex(it => !it.completed) + 1);
你可以使用一个简单的for循环,继续推送值到op
,一旦你发现completed
返回op
const array = [{name: 'one', completed: false},{name: 'two', completed: false},{name: 'three', completed: false},{name: 'four', completed: false},]
const arrayTwo = [{name: 'one', completed: true},{name: 'two', completed: true},{name: 'three', completed: false},{name: 'four', completed: false},]
const fn = arr => {
let op = []
for(let i=0; i<arr.length; i++){
op.push(arr[i])
if(!arr[i].completed){
return op
}
}
}
console.log(fn(array))
console.log(fn(arrayTwo))