使用jQuery'在数组中循环;s中的每一个都会在生成字符串时在开头产生一个未定义的值

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

本文关键字:开头 未定义 字符串 一个 数组 jQuery 循环 使用 每一个      更新时间:2023-09-26

我有一个值数组,我用它们组成一个长字符串;为此,我使用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='';