我试图获取数组内部的信息,但是每次返回未定义的语句都无法。
那是数组,它在变量'RESULTADO'中
debug {"recordType":"customrecord5",
"id":"1",
"values":{
"CUSTRECORD4.custrecord6":[{"value":"11",
"text":"11 CP BUSINESS : Empresa Teste"}],
"CUSTRECORD4.custrecord5":[{"value":"7",
"text":"LASER"}]}}
代码:
for (var i = 0; i < resultado.length; i++){
var valores = resultado[i];
log.debug(valores);
var dados = valores['value']; // NAO ESTOU CONSEGUINDO PERCORRER A VARIAVEL DADOS
log.debug(dados);
for (var u = 0; u < dados.length; u++){
valor = dados[u];
log.debug(valor);
}
}
我需要获取索引“值”内的信息,但无法获取...
答案 0 :(得分:2)
该属性的名称为values
,而不是value
。而且它的值是一个对象,而不是数组,因此您不能使用dados.length
;使用for-in
循环遍历键。
for (var i = 0; i < resultado.length; i++){
var valores = resultado[i];
log.debug(valores);
var dados = valores.values;
log.debug(dados);
for (var u in dados){
if (dados.hasOwnProperty(u)) {
valor = dados[u];
log.debug(valor);
}
}
}
答案 1 :(得分:1)
这是因为您拥有的数据不是数组,而是对象。
嗯,JS对象也被称为“关联数组”,但是它们的行为却大不相同。 它们由“ KVP”键值对{KEY:VALUE}
构成要遍历对象,您必须使用不同类型的循环,例如for / in循环。
let resultado = {
"recordType": "customrecord5",
"id": "1",
"values": {
"CUSTRECORD4.custrecord6": [{"value": "11", "text": "11 CP BUSINESS : Empresa
Teste"}],
"CUSTRECORD4.custrecord5": [{"value": "7", "text": "LASER"}]
}
};
for (let KEY in resultado) {
console.log(KEY); // recordType, id, values
console.log(resultado[KEY]); // customrecord5, 1, {...}
}
或者您可以将其转换为数组
let resultadoArr = Object.entries(resultado);
console.log(resultadoArr);
// [ [ 'recordType', 'customrecord5' ],
// [ 'id', '1' ],
// [ 'values',
// { 'CUSTRECORD4.custrecord6': [Object],
// 'CUSTRECORD4.custrecord5': [Object] } ] ]
还有另一条建议,请使用“ let”和“ const”而不是“ var”。这是当今的新标准。
我希望我有所帮助