使用 jQuery 循环遍历一个数组,每个数组在制作字符串时会在开始时导致一个未定义的值

Looping through an array with jQuery's each causes an undefined value at the start when making string

我有一组值,我正在用它们制作一个长字符串;为此,我正在使用 jQuery 的 each() 方法,但是当我 console.log() 最终值时,它在开头附加了一个 undefined 值。

我对数组中的每个值都做了 console.log(),没有未定义的值存在。

CodePen: http://codepen.io/gutterboy/pen/wGdqKo

代码:

var foo, options = [];

var defaults = [
    'one', 'two', 'three', 'four', '|',
    'five', 'six', 'seven', '|',
];

function bar () {
    $.each(defaults, function (index, value) {
        if ($.inArray(value, options) === -1) {
            if (value == '|') {
                foo += value;
            } else {
                foo += (index == 0) ? value : ',' + value;
            }
        }
    });
    console.log(foo);
}

$(document).ready(function() {
    bar();
});

您的代码没有初始化 foo。因此它的初始值为undefined+= 运算符将一个字符串附加到当前值,因此您在整个最终结果的开头以 undefined 结尾。

codepen中的代码没有初始化foo。您上面的代码将 foo 初始化为一个数组。尝试:

var foo='';