假设我有一个看起来像这样的JS array
:
"transactionProducts": [
{
"name": "Product A",
"price": 100
},
{
"name": "Product B",
"price": 1000
}
]
当“名称”的值包含B或产品B时,我只想返回“价格” 。
任何帮助将不胜感激。
谢谢
答案 0 :(得分:1)
您可以使用Array.prototype.find()
和String.prototype.match()
,如下所示:
let transactionProducts = [{
"name": "Product A",
"price": 100
}, {
"name": "Product B",
"price": 1000
}];
let price = (transactionProducts.find(x => x.name.match('B'))||{price: undefined}).price;
console.log(price);
答案 1 :(得分:1)
您可以先.filter()
个数组,然后使用.map()
仅获取价格:
let strArray = ['B', 'Product B'];
let data = [{ "name": "Product A", "price": 100 },{ "name": "Product B", "price": 1000 }];
let result = data.filter(({ name }) => strArray.some(s => name.includes(s)))
.map(({ price }) => price);
console.log(result);
答案 2 :(得分:0)
使用此功能:
function returnPrice(obj) {
if (obj["name"].match(/B/)) {
return obj["price"];
}
}