[英]Filter JSON response for a substring in value
我正在运行一个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
关于如何在JSON
上执行"like 'CASH' "
过滤器的任何想法?
您必须得到以下错误,因为在数据文本键中将具有空值或未定义值
因此,您可以修改代码以存档所需的结果。
var data2 = data.filter(d => d.Text && d.Text.startsWith('CASH'));
尝试这个 :
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.