JS 将数组指定元素移动到数组最后(重新排序)
JS 将数组指定元素移动到数组最后(重新排序)
·
项目需要让已经添加过的数据排在最后边,就去网上找来了下面的代码。希望对你有帮助
// arr 需要排序的数组 ,sourceIndex 需要移动的元素的索引 ,targetIndex 目标索引
function moveArray(arr, sourceIndex, targetIndex) {
// splice 将目标元素替换并将原结果扔回来赋值给它
arr[sourceIndex] = arr.splice(targetIndex, 1, arr[sourceIndex])[0];
}
var arr11 = [{
id: 0,
},
{
id: 1,
seleted: true
},
{
id: 2,
},
{
id: 3,
seleted: true
},
{
id: 4,
}];
// 索引数组(需要移动的元素索引数组)
var sourceIndexes = [];
arr11.forEach((item, index) => {
if (item.seleted && item.seleted == true) {
sourceIndexes.push(index);
}
});
// 遍历索引数组,移动元素
sourceIndexes.forEach((sourceIndex) => {
moveArray(arr11, sourceIndex, arr11.length);
});
console.log(arr11);
// 过滤数组,去除 undefined 项
var result = arr11.filter((item) => {
return item !== undefined || !!item;
});
console.log(result);
这样就能让你匹配到的项移到最后了(实操可以实现)
更多推荐
已为社区贡献9条内容
所有评论(0)