项目需要让已经添加过的数据排在最后边,就去网上找来了下面的代码。希望对你有帮助

// 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);

这样就能让你匹配到的项移到最后了(实操可以实现)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐