我正在运行一个OCR
作业,该作业以JSON
格式的响应返回所有检测到的文本。
摘录在这里:
{ BlockType: 'WORD',
Confidence: 99.76903533935547,
Text: 'SALES',
Geometry: [Object],
Id: '5ec23a08-9414-4b5c-99e7-1eae56bdc50a' },
{ BlockType: 'WORD',
Confidence: 99.61475372314453,
Text: 'TAX',
Geometry: [Object],
Id: '564594a4-32d6-4a24-aaf6-76ac2794dfbb' },
{ BlockType: 'WORD',
Confidence: 98.65728759765625,
Text: '-7.94',
Geometry: [Object],
Id: 'f9c94902-4807-43a2-b834-b68d52f00efc' },
{ BlockType: 'WORD',
Confidence: 99.82821655273438,
Text: 'TOTAL',
Geometry: [Object],
Id: '8515e57f-fe6f-4c13-b2d0-c0dcb82333bb' },
{ BlockType: 'WORD',
Confidence: 98.82560729980469,
Text: '-$140.32',
Geometry: [Object],
Id: 'e7ba0d15-678a-4b30-a764-0a41d7f89f29' },
{ BlockType: 'LINE',
Confidence: 96.75798797607422,
Text: 'CASHIER: JSMITH',
Geometry: { BoundingBox: [Object], Polygon: [Array] },
Id: 'f50c8a71-6954-428f-8d61-8a143194befd',
Relationships: [ [Object] ] }
我需要过滤出"matches"
某个前缀字符串的字段。
对于完全匹配的字段,它们非常适用...
var data2 = data.filter(d => d.Text == 'SALES');
var data2 = data.filter(d => d.Text == 'TAX');
但对于CASHIER
字段来说却不是很多。
我尝试了几种方法...无济于事..包括。
var data2 = data.filter(d => d.Text.includes('CASH') );
var data2 = data.filter(d => d.Text.match('CASH') );
任何不是比较运算符的东西都会产生这种类型的错误...
TypeError: Cannot read property 'includes' of undefined
关于如何在"like 'CASH' "
上进行JSON
过滤的任何想法?
答案 0 :(得分:1)
您肯定会遇到错误,因为数据文本键中的值将为null或未定义
因此您可以修改代码以归档所需的结果。
var data2 = data.filter(d => d.Text && d.Text.startsWith('CASH'));
答案 1 :(得分:0)
尝试一下:
var data = [{
"Text": "SALES"
},
{
"Text": "TAX"
},
{
"Text": "-7.94"
},
{
"Text": "TOTAL"
},
{
"Text": "-$140.32"
},
{
"Text": "CASHIER: JSMITH"
}
];
var res = data.filter(d => d.Text.startsWith('CASH'));
console.log(res);