我有这样的数据
const data = [
{
name: 'name1',
id: 'id1'
},
{
name: 'name2',
id: 'id2'
},
{
name: 'name3',
id: 'id3'
},
{
name: 'name4',
id: 'id4'
},
{
name: 'name5',
id: 'id5'
},
{
name: 'name6',
id: 'id6'
},
{
name: 'name7',
id: 'id7'
},
{
name: 'name8',
id: 'id8'
},
]
我需要将所有对象推送到
id3
(不包括 id3
)到一个数组中,然后将 id3
到 id6
(不包括 id6
)推送到一个数组中,其余的东西放到另一个数组中。在
id1
和 id3
之间将添加任意数量的对象,但我们需要推送直到 id3
,同样我们可以将对象数量添加到 id3
到 id6
。最后我尝试实现这样的目标
firstArr = [
{
name: 'name1',
id: 'id1'
},
{
name: 'name2',
id: 'id2'
}
]
secondArr = [
{
name: 'name3',
id: 'id3'
},
{
name: 'name4',
id: 'id4'
},
{
name: 'name5',
id: 'id5'
}
]
thirdArr = [
{
name: 'name6',
id: 'id6'
},
{
name: 'name7',
id: 'id7'
},
{
name: 'name8',
id: 'id8'
}
]
这里
id3
和 id6
这样的顺序不会改变,所以我们可以以此为引用。 最佳答案
您可以使用 Array.slice() 和 Array.findIndex() :
const id3Index = data.findIndex(obj => obj.id === 'id3');
const id6Index = data.findIndex(obj => obj.id === 'id6');
const arr1 = data.slice(0, id3Index);
const arr2 = data.slice(id3Index, id6Index);
const arr3 = data.slice(id6Index);
const data = [
{
name: 'name1',
id: 'id1'
},
{
name: 'name2',
id: 'id2'
},
{
name: 'name3',
id: 'id3'
},
{
name: 'name4',
id: 'id4'
},
{
name: 'name5',
id: 'id5'
},
{
name: 'name6',
id: 'id6'
},
{
name: 'name7',
id: 'id7'
},
{
name: 'name8',
id: 'id8'
},
]
const id3Index = data.findIndex(obj => obj.id === 'id3');
const id6Index = data.findIndex(obj => obj.id === 'id6');
console.log(data.slice(0, id3Index));
console.log(data.slice(id3Index, id6Index));
console.log(data.slice(id6Index));
关于javascript - 将对象拆分为特定的 id 字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55634412/