如何在javascript或lodash中从数组中删除所有下一个元素
我有一个object如何在javascript或lodash中从数组中删除所有下一个元素,javascript,arrays,reactjs,ecmascript-6,lodash,Javascript,Arrays,Reactjs,Ecmascript 6,Lodash,我有一个object[{a:1},{a:2},{a:3},{a:4},{a:5}]数组 我想找到{a:3}的索引,并从{a:3}的索引中删除所有后续元素 结果应该像[{a:1},{a:2},{a:3}]一样,删除的元素将是{a:4},{a:5}带有切片和findIndex的一行代码 const data=[{a:1},{a:2},{a:3},{a:4},{a:5}]; const res=data.slice( 0, data.findIndex((el)=>JSON.stringify(el
[{a:1},{a:2},{a:3},{a:4},{a:5}]
数组
我想找到{a:3}
的索引,并从{a:3}
的索引中删除所有后续元素
结果应该像
[{a:1},{a:2},{a:3}]
一样,删除的元素将是{a:4},{a:5}
带有切片和findIndex的一行代码
const data=[{a:1},{a:2},{a:3},{a:4},{a:5}];
const res=data.slice(
0,
data.findIndex((el)=>JSON.stringify(el)==JSON.stringify({a:3}))+1
);
控制台日志(res)代码>带有slice
和findIndex
const data=[{a:1},{a:2},{a:3},{a:4},{a:5}];
const res=data.slice(
0,
data.findIndex((el)=>JSON.stringify(el)==JSON.stringify({a:3}))+1
);
控制台日志(res)
您可以使用Array#findIndex()
根据对象的编号查找该对象,或者Array#indexOf()
如果您有对该对象的引用
然后,您可以设置数组的长度(突变)或使用array#slice()
(非突变)来减少其长度:
const数组=[{a:1},{a:2},{a:3},{a:4},{a:5}]
常量i=array.findIndex(({a}=>a==3)
常量arrayCopy=array.slice(0,i+1)
//或:
array.length=i+1
控制台日志(i)
console.log(arrayCopy)
console.log(array)
您可以使用array#findIndex()
按其编号查找该对象,或者如果您有对该对象的引用,可以使用array#indexOf()
然后,您可以设置数组的长度(突变)或使用array#slice()
(非突变)来减少其长度:
const数组=[{a:1},{a:2},{a:3},{a:4},{a:5}]
常量i=array.findIndex(({a}=>a==3)
常量arrayCopy=array.slice(0,i+1)
//或:
array.length=i+1
控制台日志(i)
console.log(arrayCopy)
log(数组)
我不想将它与数组元素值进行比较,比如a==3
。我真的需要用array@ShopifyGuy嗯,因此您可能需要进行深入的对象比较,我用JSON.stringify解决方案更新了答案JSON.stringify
方法效率低下,在某些情况下可能无法工作,等等。请看,我不想将其与数组元素值进行比较,如a==3
。我真的需要用array@ShopifyGuy嗯,所以你可能需要进行深入的对象比较,我用一个JSON.stringify解决方案更新了答案JSON.stringify
方法效率低下,在某些情况下可能无法工作,等等。请看,你想要一个新数组还是保留旧数组而不需要其他数组?请添加所需的结果和代码,您已经尝试过了。您想要一个新数组还是保留旧数组而不使用不需要的数组?请添加想要的结果和代码,您已尝试。