因爲你說sequence[i] += ...
。
默認sequence[i]
是undefined
。順便說一句
var arr = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
(function rand(alpha){
var sequence = [];
for(var i = 0; i < 10; i++){(function(i){
sequence[i] = "";
for(var j = 0; j < 3; j++){(function(j){
sequence[i] += alpha[Math.floor(Math.random()*10)+1];
})(j)}
})(i)}
return sequence;
})(arr);
:
var a;
a += "hello";
console.log(a); // "undefinedhello"
var b = "";
b += "hello";
console.log(b); // "hello"
可以解決這個問題。
var arr = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
(function rand(alpha) {
var sequence = [];
for(var i = 0; i < 10; i++){
sequence[i] = "";
for(var j = 0; j < 3; j++){
sequence[i] += alpha[Math.floor(Math.random()*10)+1];
}
}
return sequence;
})(arr);
或我想我會prefere做一個命名函數:
var arr = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
var a = sequence(arr);
function sequence(alpha) {
var sequence = [];
for(var i = 0; i < 10; i++){
sequence[i] = "";
for(var j = 0; j < 3; j++){
sequence[i] += alpha[Math.floor(Math.random()*10)+1];
}
}
return sequence;
};
http://jsfiddle.net/ZAkVw因爲你的腳本運行同步,你並不需要所有的封鎖/ – Hackerman