javascript中的映射和过滤函数
Map and filter functions in javascript
我有一个数组,如下所示:
let allCars = [
{
id: 1,
listID: 2,
name: "CAR 1",
url: "Fixed 2016-W24"
}, {
id: 2,
listID: 2,
name: "CAR 2",
url: "Fixed 2016-W24"
}, {
id: 3,
listID: 3,
name: "CAR 3",
url: "Fixed 2016-W24"
},{
id: 1,
listID: 1,
name: "CAR 4",
url: "Fixed 2016-W24"
},{
id: 5,
listID: 2,
name: "CAR 5",
url: "Fixed 2016-W24"
}
];
我还有一系列的汽车在卡片上,像这样:
let cardContent = [
{
carID: 1,
listID: 2
},
{
carID: 5,
listID: 2
}
]
我正在尝试从allCars获得带有id=1, listID=2
和id=5, listID=2
的汽车。
我试着通过cardContent进行映射,然后从allCars中只过滤那些具有该carID和列表ID的人。但没有成功。
我试过这种
const result = allCars.map(i => {
return {
carID: i.carID,
listID: i.listID
}
}).filter(a => {
return ((a.carID === cardContent.carID) && (a.listID === cardContent.listID))
});
这是jsfiddle
。
有什么建议吗?
您可以使用Array#filter
和Array#some
let allCars = [{"id":1,"listID":2,"name":"CAR 1","url":"Fixed 2016-W24"},{"id":2,"listID":2,"name":"CAR 2","url":"Fixed 2016-W24"},{"id":3,"listID":3,"name":"CAR 3","url":"Fixed 2016-W24"},{"id":1,"listID":1,"name":"CAR 4","url":"Fixed 2016-W24"},{"id":5,"listID":2,"name":"CAR 5","url":"Fixed 2016-W24"}];
let cardContent = [{"carID":1,"listID":2},{"carID":5,"listID":2}]
const result = allCars.filter(function(e) {
return cardContent.some(function(a) {
return e.id == a.carID && e.listID == a.listID;
})
})
console.log(result);
试试这个:
let allCars = [
{
id: 1,
listID: 2,
name: "CAR 1",
url: "Fixed 2016-W24"
}, {
id: 2,
listID: 2,
name: "CAR 2",
url: "Fixed 2016-W24"
}, {
id: 3,
listID: 3,
name: "CAR 3",
url: "Fixed 2016-W24"
},{
id: 1,
listID: 1,
name: "CAR 4",
url: "Fixed 2016-W24"
},{
id: 5,
listID: 2,
name: "CAR 5",
url: "Fixed 2016-W24"
}
];
let cardContent = [
{
carID: 1,
listID: 2
},
{
carID: 5,
listID: 2
}
]
const output = allCars.filter(car => cardContent.some(card => (car.id === card.carID && car.listID === card.listID)));
console.log(output);
相关文章:
- 为什么此函数会过滤掉“空”值
- 如何在redux模块中创建一个helper类型的函数,从state返回一组经过过滤的只读数据
- 如何通过类名和过滤函数获取属性值
- 如何使用filter函数在javascript中过滤对象
- 使用 p5 和 Javascript 过滤显示内容的函数
- 返回列表的函数 - 过滤输出时出现问题
- jQuery .not() 没有从函数 - Ideas 中过滤元素
- JavaScript 函数检索输入 [type=number] 并根据值过滤它们
- 如何过滤数组并将其与 Javascript 中的函数参数进行比较
- 点击Angular过滤列表中的函数
- 用javascript创建简单过滤函数的最佳方法是什么
- 使用angular.forEach函数过滤HTML表以替换许多if/else语句
- 如果过滤函数是异步的,如何使用lodash过滤列表
- 使用函数式编程过滤文字对象
- 如何用纯JavaScript重写这个jQuery搜索过滤函数?
- 基本的Javascript过滤函数在Angular2中不能正常工作
- 过滤函数没有返回正确的值
- 为什么我没有定义这个过滤函数
- javascript中的映射和过滤函数
- 使用多个值在一个jquery过滤函数中的数据属性的例子