匹配数组属性值中的特定文本,然后替换并仅输出替换值



我想按值过滤以下数组。 包含"-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)

捷轩

您可以先过滤其中有-usd的内容,然后使用映射函数

var filter = arr.filter(i => i.animal.indexOf('-usd') >= 0).map((i, k) => {
var ret = i.animal.replace(/-USD/gi, '')
return ret;
})

检查filter方法中的i.animal.indexOf('-usd') !== -1

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)

相关内容

最新更新