【发布时间】:2019-08-09 11:12:59
【问题描述】:
我正在尝试使用以下代码在 temp1 内部搜索是否有任何 值 具有字符串 "processado"
let temp1 = [{
"id":7089,
"value":"R$ 50,00",
"name":"Daiany Nascimento",
"date":"18/03/2019",
"type":"Cobrança",
"status":{
"status":"Paga",
"icon":"paid"
},
"credit_release_date":"Não Processado",
"credit_release_description":"— — — —"
}]
let b = []
temp1.forEach((a,index_a) => {
Object.values(a).every((value,index,array) => {
let expression = new RegExp("processado", "i") //expression to search
if (typeof value == "object") {
Object.values(value).every(valueOfObject => {
if (expression.test(valueOfObject)) {
b.push(temp1[index_a])
return false;
} else {
return true
}
})
}
else if (expression.test(value)){
b.push(temp1[index_a])
return false
}
else {
return true
}
})
})
但是,数组 b 仍然为空。如果我尝试搜索字符串 "Cobrança",则 array b 会被填充,这是应该的。我认为,如果我尝试搜索存储在 keys status key 之后的 values,就会出现问题.
【问题讨论】:
-
只是一个建议:对于您的用例,Arrays 'find' 方法似乎是适合使用的方法。有什么理由在这里使用“每个”吗?
标签: javascript ecmascript-6 ecmascript-5 ecmascript-2017