gpt4 book ai didi

JavaScript 过滤方法 - 只返回第一个对象

转载 作者:行者123 更新时间:2023-11-30 09:23:49 25 4
gpt4 key购买 nike

使用JavaScript中的filter()方法,是否可以只返回第一个通过测试的实例?在我的 cars 数组中找到第一个对象后,我想将该对象从其当前位置移动到 cars 数组的开头。

代码:

     cars.filter(function(car) {

var fareType = car.data("fareType");
var partnerCode = car.data("partnerCode");

if (fareType == "DEAL" && partnerCode == "AV")
{
// get first instance only and move element to beginning of array
}

if (fareType == "DEAL" && partnerCode == "BU")
{
// also get first instance where partnerCode == BU only and move element to beginning of array
// If dataPrice is less than dataPrice for partner AV, move to first position, else move to second position
}
});

最佳答案

我会使用 .findIndex.splice :

let index = cars.findIndex(function(car) {
var fareType = car.data("fareType");
var partnerCode = car.data("partnerCode");
return (fareType == "DEAL" && partnerCode == "AV");
});
if (index !== -1) {
let car = cars[index];
cars.splice(index, 1);
cars.unshift(car);
/*
* this could be reduced to:
*
* cars.unshift(...cars.splice(index, 1));
*
* at the sake of clarity
*/
}

index = cars.findIndex(function(car) {
return fareType == "DEAL" && partnerCode == "BU";
});
if (index !== -1) {
let car = cars[index];
cars.splice(index, 1);
if (car.data('price') < cars[0].data('price')) {
cars.unshift(car);
} else {
cars.splice(1, 0, car);
}
}

关于JavaScript 过滤方法 - 只返回第一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50010381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com