我试图比较一下我从JSON获得的字符串是否以某个数字开头,例如,如果字符串1.1.01.10.0001以1.1.01.10开头。我写了这段代码来测试这个:
var result = JSON.parse(data);
for (x in result.group){
var group = JSON.stringify(x.group);
for (y in result.account){
var account = JSON.stringify(y.account);
console.log(group);
console.log(account);
if (account.indexOf(group) != -1){
alert("ok");
}
}
}
我不知道错误在哪里,控制台在这里返回:
在第一个结果中它应该返回除-1之外的一些数字,如何解决这个问题?
答案 0 :(得分:0)
对于给定的JSON,这工作正常
var data = {
"group": [{
"description": "xxxxx",
"group": "1.1.01.10"
}, {
"description": "xxxxx",
"group": "1.1.01.20"
}],
"account": [{
"description": "xxxxx",
"account": "1.1.01.10.001"
}, {
"description": "xxxxx",
"account": "1.1.01.20.001"
}, {
"description": "xxxxx",
"account": "1.1.01.20.002"
}, {
"description": "xxxxx",
"account": "1.1.01.20.003"
}]
}
data = JSON.stringify(data);
var result = JSON.parse(data);
var customFn = function(val) {
for (var x = 0; x < result[val].length; x++) {
var value = result[val][x];
console.log(value[val]);
if (value[val].indexOf('1.1.01.10.') != -1) {
alert("ok value is " + value[val]);
}
}
}
customFn('group');
customFn('account');
&#13;