我想按值过滤以下数组。 值包括' -usd'需要在没有' -usd'的情况下进行更换。 之后,我想只输出替换值!而不是马或老鼠。我怎么能这样做?
所以过滤后的数组可能如下所示:
arr = [
{animal: 'cat', price: 150},
{animal: 'dog', price: 350},
]
到目前为止,我做到了这一点:
arr = [
{animal: 'cat-usd', price: 150},
{animal: 'dog-usd', price: 350},
{animal: 'horse', price: 5000},
{animal: 'mouse', price: 50}
]
var filter = arr.map((i, k) => {
var ret = i.animal.replace(/-USD/gi, '')
return ret;
})
console.log(filter)
答案 0 :(得分:3)
您可以先对其中包含-usd
的内容进行过滤,然后使用地图功能
var filter = arr.filter(i => i.animal.indexOf('-usd') >= 0).map((i, k) => {
var ret = i.animal.replace(/-USD/gi, '')
return ret;
})
答案 1 :(得分:1)
在i.animal.indexOf('-usd') !== -1
方法中检查filter
。
arr = [
{animal: 'cat-usd', price: 150},
{animal: 'dog-usd', price: 350},
{animal: 'horse', price: 5000},
{animal: 'mouse', price: 50}
];
var filter = arr.filter((i, k) => {
if(i.animal.indexOf('-usd') !== -1){
i.animal = i.animal.replace(/-USD/gi, '');
return i;
}
})
console.log(filter)