我的脚本从网站API(https://api.discogs.com/)中读取数据,例如https://api.discogs.com/releases/249504
"identifiers": [{"type": "Barcode", "value": "5012394144777"}...]
我希望它仅读取条形码类型的标识符。现在,我可以看到它正在读取整个数组,而这并不是我想要的。这是“把网撒得太宽” /
var barcode = data.identifiers;
const barcode = data.identifiers || []
const barcode = data.identifiers.type == "Barcode" || []
我认为这是一个对象数组,但是如何仅将所需数据作为目标? TIA。
编辑:我很确定“条形码”将作为引号中的字符串输入,因为其他可能的标识符类型之一是“标签代码”,该标识符肯定必须作为字符串输入,因为它包含一个空间!
答案 0 :(得分:1)
我认为您正在寻找过滤功能:
> data = [{'type':'Barcode', value:'A'}, {'type':'Matrix', 'value':'B'}]
[ { type: 'Barcode', value: 'A' }, { type: 'Matrix', value: 'B' } ]
> data.filter(x => x.type == 'Barcode')
[ { type: 'Barcode', value: 'A' } ]
如果您不了解内置的filter方法,也可以使用for循环来做类似的事情:
const b = []
for (x of data) {
if (x.type == 'Barcode') {
b.push(x)
}
}