我有这个初始数组,希望根据from.flightno
和to.flightno
提取重复航班
const myArray = [
{ from: { flightNo: 'A11' }, to: { flightNo: 'B11' }, code: 23 },
{ from: { flightNo: 'A12' }, to: { flightNo: 'B45' }, code: 22 },
{ from: { flightNo: 'A12' }, to: { flightNo: 'B52' }, code: 21 },
{ from: { flightNo: 'A11' }, to: { flightNo: 'B11' }, code: 20 },
{ from: { flightNo: 'A14' }, to: { flightNo: 'B44' }, code: 25 },
{ from: { flightNo: 'A15' }, to: { flightNo: 'B69' }, code: 24 },
{ from: { flightNo: 'A14' }, to: { flightNo: 'B44' }, code: 26 },
];
result:
[
{ from: { flightNo: 'A11' }, to: { flightNo: 'B11' }, code: 23 },
{ from: { flightNo: 'A11' }, to: { flightNo: 'B11' }, code: 20 },
{ from: { flightNo: 'A14' }, to: { flightNo: 'B44' }, code: 25 },
{ from: { flightNo: 'A14' }, to: { flightNo: 'B44' }, code: 26 },
]
我写了这个,但我只能得到第一个重复的,看起来不是很漂亮。
const duplicates = myArray
.map((item) => {
let count = 0;
for (let i = 0; i < myArray.length; i++) {
if (count > 1) {
count = 0;
return item;
}
if (
myArray[i]?.from?.flightNo == item?.from?.flightNo &&
myArray[i]?.to?.flightNo == item?.to?.flightNo
)
count++;
}
})
.filter((notUndefined) => notUndefined !== undefined);
有什么建议吗?
您可以创建一个地图,通过航班号对(并使用json.stringify
对该对进行字符串化)进行键控,每个键都有一个空数组。然后迭代数据以填充那些数组。
最后提取具有多个元素的子数组,并将结果平坦化:
null
const myArray = [{ from: { flightNo: 'A11' }, to: { flightNo: 'B11' }, code: 23 },{ from: { flightNo: 'A12' }, to: { flightNo: 'B45' }, code: 22 },{ from: { flightNo: 'A12' }, to: { flightNo: 'B52' }, code: 21 },{ from: { flightNo: 'A11' }, to: { flightNo: 'B11' }, code: 20 },{ from: { flightNo: 'A14' }, to: { flightNo: 'B44' }, code: 25 },{ from: { flightNo: 'A15' }, to: { flightNo: 'B69' }, code: 24 },{ from: { flightNo: 'A14' }, to: { flightNo: 'B44' }, code: 26 },];
let map = new Map(myArray.map(o => [JSON.stringify([o.from.flightNo, o.to.flightNo]), []]));
for (let o of myArray) map.get(JSON.stringify([o.from.flightNo, o.to.flightNo])).push(o);
let result = [...map.values()].filter(arr => arr.length > 1).flat();
console.log(result);
我有个简单的课 我创建了这个类的样本对象的ArrayList 这里没有显示我后来如何填充对象的其他字段(名称,地址等) 有没有一种方法可以使用字母数字字符串id快速检索其中一个对象,而无需遍历整个列表?(没有实现数据库层) 差不多
如何从对象获取数组?我试图进入空数组,这样我就可以验证它的空状态。 输出
我创建了一个如下数组: 如何获取/过滤该数组,使其仅具有“1”、“2”和“5”元素,如下所示: 最好的方法是什么?
假设我有一个像这样的对象数组: 我如何循环它(如果我必须),以便我得到一个特定键值的列表。让我们来举一个所有名字的列表。 多谢了。
我在开快车。js应用程序,有几个API将数据提供给下拉框。返回的数据格式为: 其中key是我的选项key,value是显示文本。这个数组的结构是固定的,我知道一个事实,我总是将key和value作为数组中每个对象的字段。 当我尝试验证提交的表单(额外的服务器端验证)时,我想交叉引用为字段提供的值与数组中“key”的所有值(blah、foo、bar、baz)。鉴于这将是一个经常使用的路由,我想避免每
我有这个数组的对象,我想删除最后一个对象。有人能让我知道这样做吗?