假设我有一个名为dogs的数组。我想要对我的狗进行排序,其中具有Shiba属性的狗将在开始,所有其他品种将在中间,没有品种的狗将在数组的末尾。
let dogs = [
{id: 0, breed: 'Pug'},
{id: 1, breed: 'Shiba'},
{id: 2},
{id: 3, breed: 'Shar Pei'},
]结果应该是这样的:
[
{id: 1, breed: 'Shiba'},
{id: 0, breed: 'Pug'},
{id: 3, breed: 'Shar Pei'},
{id: 2},
]发布于 2021-07-08 11:43:23
迭代数组并根据过滤后的数据创建单独的临时数组,然后组合它们以返回最终数组。
let dogs = [
{id: 0, breed: 'Pug'},
{id: 1, breed: 'Shiba'},
{id: 2},
{id: 3, breed: 'Shar Pei'},
];
const arrangeList = (list) => {
let finalList = [];
const breedList = [];
const nonBreedList = [];
for (obj of list) {
if (obj.breed === "Shiba") {
finalList.push(obj);
} else if (obj.breed?.length > 0){
breedList.push(obj);
} else {
nonBreedList.push(obj);
}
}
return [...finalList, ...breedList, ...nonBreedList];
}
console.log(arrangeList(dogs));
发布于 2021-07-08 11:45:28
给你;
let dogs = [
{id: 0, breed: 'Pug'},
{id: 1, breed: 'Shiba'},
{id: 2},
{id: 3, breed: 'Shar Pei'},
]
const sorting = (arr) => {
arr.map(obj => {
if (obj.breed == 'Shiba') {
dogs.splice(dogs.indexOf(obj), 1)
dogs.unshift(obj)
}
if (!obj.breed) {
dogs.splice(dogs.indexOf(obj), 1)
dogs.push(obj)
}
})
return arr;
}
console.log(sorting(dogs))
https://stackoverflow.com/questions/68295248
复制相似问题