简体   繁体   English

从数组中删除特定对象并将此对象移动到同一数组的 0 索引上

[英]Remove the specific object from array and shift this object on 0 index of the same array

I have an array which has multiple objects.我有一个包含多个对象的数组。 I just want to remove a object by using comparing the title and shift this object on 0 index at the same array.我只想通过比较标题来删除一个对象,并将该对象移到同一数组的 0 索引上。 How can I do it.我该怎么做。 Please suggest me the solution.请建议我解决方案。

Input Array:输入数组:

 const inputArr = [{id:1, title:"John",age:20},{id:2, title:"smith",age:22},{id:3, title:"stokes",age:24},{id:4, title:"david",age:30},{id:5, title:"William",age:28},{id:6, title:"Andy",age:32}]

Output Array:输出数组:

const outputArr = [{id:5, title:"William",age:28},{id:1, title:"John",age:20},{id:2, title:"smith",age:22},{id:3, title:"stokes",age:24},{id:4, title:"david",age:30},{id:6, title:"Andy",age:32}]

Remove the object with title===William from array and shift into the 0 index从数组中移除 title===William 的对象并移入 0 索引

you can simply use sort for that你可以简单地使用 sort

 const inputArr = [{id:1, title:"John",age:20},{id:2, title:"smith",age:22},{id:3, title:"stokes",age:24},{id:4, title:"david",age:30},{id:5, title:"William",age:28},{id:6, title:"Andy",age:32}] const outputArray = [...inputArr].sort((a, b) => { if(a.title === 'William') return -1 if(b.title === 'William') return 1 return a.id - b.id }) console.log(outputArray)

 const inputArr = [{id:1, title:"John",age:20},{id:2, title:"smith",age:22},{id:3, title:"stokes",age:24},{id:4, title:"david",age:30},{id:5, title:"William",age:28},{id:6, title:"Andy",age:32}]; // `findIndex` of the appropriate object const index = inputArr.findIndex(obj => obj.title === 'William'); // `splice` out the object and then `unshift` it // to the start of the array (Note: we don't have // to make any changes if the index is 0) if (index > 0) { inputArr.unshift(inputArr.splice(index, 1)); } console.log(inputArr);

Additional documentation附加文件

const inputArr = [{id:1, title:"John",age:20},{id:2, title:"smith",age:22},{id:3, title:"stokes",age:24},{id:4, title:"david",age:30},{id:5, title:"William",age:28},{id:6, title:"Andy",age:32}]
    
    const getTitle = inputArr.filter((item) => item.title === 'William')
    const getRest = inputArr.filter((item) => item.title !== 'William')
    
    
    console.log(getTitle.concat(getRest))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM