javascript - 使用 javascript 循环 Json 数组得到错误的输出

标签 javascript arrays json

我正在从 JSON 数组中提取数据,如下所示:

"abridged_directors": [{
            "name": "Bill",
            "id": "742790769",
            "characters": ["Flint Lockwood"]
        }, {
            "name": "Anna",
            "id": "162654477",
            "characters": ["Sam Sparks"]
        }, {
            "name": "James",
            "id": "162656402",
            "characters": ["Tim Lockwood"]
        }, {
            "name": "Will",
            "id": "770670480",
            "characters": ["Chester V"]
        }, {
            "name": "Kristen",
            "id": "770792145",
            "characters": ["Barb"]
        }],

我正在使用循环来正确显示结果。 我正在寻找的是: 比尔、安、詹姆斯、威尔和克里斯汀

相反,我得到: 比尔、安、詹姆斯、威尔和克里斯汀

对于第二个姓氏,我想要一个逗号,下面的 if else 语句应该涵盖它,但它似乎不起作用?

for (var i = 0;i < data.abridged_directors.length; i++){
            if(i != 0 && i == data.abridged_directors.length-1){
                // and the position of the character is greater than 0
                $(document.body).append('& ' + data.abridged_directors[i].name + '<br>');
            }
            else if(i != data.abridged_directors.length-1 || i != data.abridged_directors.length-2){
                 $(document.body).append(data.abridged_directors[i].name + ', ');
            }
            else
                $(document.body).append(data.abridged_directors[i].name + '<br>');


   }

我已经关注这个问题有一段时间了,并进行了更改,但似乎没有任何效果。这可能是一些小事,我没有看到,如果事实果真如此,我很抱歉!

最佳答案

我想提供一个更干净的方法(恕我直言)。不要循环和追加,而是尝试加入一个名称数组并仅替换最后一个逗号。参见代码:

var names = [];

for (var i = 0;i < data.abridged_directors.length; i++)
{
     names.push(data.abridged_directors[i].name);
}

$(document.body).append(names.join(', ').replace(/(.*),(.*)$/, "$1 & $2"));

这是一个jsfiddle:http://jsfiddle.net/zYdH9/

关于javascript - 使用 javascript 循环 Json 数组得到错误的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22838760/

相关文章:

java - NSArray 大小和可变性

c - 将 main 中的数组转换为全局数组,稍后由 main 更改?

jquery - 从 JSON 对象获取值

javascript - 使用javascript更改导航栏的颜色

javascript - 使用 fork() 克服 node.js 内存限制?

javascript - 在导航过程中保持阵列的位置

json - JSON 值是否可以包含多行字符串

javascript - 使用 jquery 从 json 中删除特定行

javascript - setTimeout 中的 setInterval 不起作用...为什么?

javascript - 用 Javascript 和数组进行测验?