我怀疑这是一个简单的问题,但我对js有点新,无法找到解决方案.
基本上,当我将JSON字符串传递给函数然后尝试遍历传递的变量时,它会将其视为文字字符串而不是数组.
有了这个功能:
function build_codes_long(codes) {
var codes_long_text = "";
for(var i =0;i < codes.length-1;i++) {
var code = codes[i];
codes_long_text += "<p>" + code['id'] + " = " + code['del'] + "</p>";
}
return codes_long_text;
}
Run Code Online (Sandbox Code Playgroud)
当我将JSON字符串传递给它时:
[{"id":"1","del":"0","clip":"1"},{"id":"2","del":"0","clip":"1"}]
Run Code Online (Sandbox Code Playgroud)
它评估字符串中的每个字符,而不是数组中的每个项目.因此它循环65次而不是2次,返回类似于:
undefined = undefined
Run Code Online (Sandbox Code Playgroud)
我理解返回值的问题; 它是将数组视为一个我不理解的文字字符串.谢谢!
Jon*_*n M 11
这是因为你没有在一个物体中循环; 你循环一个字符串并得到每个字母作为结果.
您需要首先将JSON字符串转换为对象:
var myObject = JSON.parse(myJsonString);
var codesLongText = build_codes_long(myObject);
Run Code Online (Sandbox Code Playgroud)