需求是,数组一第个元素对象的id不可以为0,如果是,则当前对象索引下标往后移,不为0则不作操作,请问要怎么做,可以写个demo给愚弟不,感谢
list:[
{
id:0,
name:'a'
},
{
id:1,
name:'b'
},
{
id:2,
name:'c'
}
]
需求是,数组一第个元素对象的id不可以为0,如果是,则当前对象索引下标往后移,不为0则不作操作,请问要怎么做,可以写个demo给愚弟不,感谢
list:[
{
id:0,
name:'a'
},
{
id:1,
name:'b'
},
{
id:2,
name:'c'
}
]
let list=[
{
id:0,
name:'a'
},
{
id:1,
name:'b'
},
{
id:2,
name:'c'
}
]
console.log(list.sort(function (a, b) {
if (a.id > b.id) {
return -1;
} else if (a.id == b.id) {
return 0;
} else {
return 1;
}
}))
这个意思?好吧理解错了..........
function test(arr){
if(arr.length >1&&arr[0].id == 0){
arr[1] = arr.splice(0,1,arr[1])[0]
//补充:还可以使用es6
//[arr[0],arr[1]] = [arr[1],arr[0]]
}
return arr
}
console.log( test(list));
//[{ id: 1, name: "b" }, { id: 0, name: "a" }, { id: 2, name: "c" }]
你的意思没有说清楚啊,你给的例子之给了调整前的数据,没有给期望的数据。如果期望
list:[
{
id:1,
name:'b'
},
{
id:0,
name:'a'
},
{
id:2,
name:'c'
}
]
则也有一些其它需要确认的情况:
比如 如果只有id:0的元素怎么处理?
如果不讨论这些,则这个是判断第一个元素id为0,则和下一个元素互换位置吧。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
是不是可以理解为,找到数组中第一个id不为0的元素,将这个元素从数组删除,然后再将它追加到数组最前面?
这个你会吧~