我有一个排序数组,其中需要获取前四个元素,但这里不是获取前四个元素,而是需要保持第一个和第二个对象为静态对象,其余两个对象来自排序数组
const data = [
{ symbol: 'EHE', name: 'John' },
{ symbol: 'EHE-46', name: 'John' },
{ symbol: 'EHE-24', name: 'John' },
{ symbol: 'BHE-67', name: 'John' },
{ symbol: 'BHE', name: 'John' },
{ symbol: 'EHE-12', name: 'John' },
{ symbol: 'BHE-23', name: 'John' },
{ symbol: 'EHE-679', name: 'John' },
];
const eheIndex = data.findIndex(item => item.symbol === 'EHE');
const bheIndex = data.findIndex(item => item.symbol === 'BHE');
const output = [
data[eheIndex],
data[bheIndex],
...data.slice(eheIndex + 1, eheIndex + 3),
];
console.log(output);
因此,这将为我提供将第一个和第二个对象放在顶部的输出,并将排序后的其余对象放在其余位置.
但如果我将数据更改为不同的数据,它不起作用
const notWorkingData = [
{ symbol: 'EHE', name: 'John' },
{ symbol: 'BHE', name: 'John' },
{ symbol: 'EHE-12', name: 'John' },
{ symbol: 'BHE-23', name: 'John' },
{ symbol: 'EHE-679', name: 'John' },
{ symbol: 'EHE-46', name: 'John' },
{ symbol: 'EHE-24', name: 'John' },
{ symbol: 'BHE-67', name: 'John' },
];
输出
[
{
"symbol": "EHE",
"name": "John"
},
{
"symbol": "BHE",
"name": "John"
},
{
"symbol": "BHE",
"name": "John"
},
{
"symbol": "EHE-12",
"name": "John"
}
]
这给了我两次相同的对象,它应该获取第一个和第二个对象的位置,它应该从数组顺序获取一个休息时间
预期yields
[
{
"symbol": "EHE",
"name": "John"
},
{
"symbol": "BHE",
"name": "John"
},
{
"symbol": "BHE-12",
"name": "John"
},
{
"symbol": "EHE-23",
"name": "John"
}
]