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