需求是数组第一个元素id不可为0,如果为0则整个对象往后移,不为0则不管,全部为0则返回个false请问有方法思路不,感谢
list:[
{
id:0,
name:'a'
},
{
id:1,
name:'b'
},
{
id:2,
name:'c'
}
]
需求是数组第一个元素id不可为0,如果为0则整个对象往后移,不为0则不管,全部为0则返回个false请问有方法思路不,感谢
list:[
{
id:0,
name:'a'
},
{
id:1,
name:'b'
},
{
id:2,
name:'c'
}
]
function fixArr() {
var list = [
{
id:0,
name:'a'
},
{
id:0,
name: 'b'
}
];
var list2 = [
{
id:0,
name:'a'
},
{
id:1,
name: 'b'
}
]
if(list2[0].id === 0) list2.splice(0,0,list2[1]),list2.splice(2,1) //只是简单的交换第一个和第二个元素位置
//list2.every(item => item.id == 0) // false
return !list.every(item => item.id == 0) //判断全为0,使用ervery函数就行了
}
最简单的办法是用sort来调整顺序吧。
function checkList (list) {
if (list.every(item => item.id === 0)) return false
list.sort((a,b) => (a.id === 0) - (b.id === 0))
return true
}
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读