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

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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐