Array.pushArrayElement()
微妙。
by ethertank
JavaScript
// パターン1。普通な感じ。上層のループは引数毎に回すやつ、下層は引数として渡された配列の要素くるくる用
Array.prototype.pushArrayElement || (Array.prototype.pushArrayElement = function() {
if (arguments.length === 0) return;
var t = this;
for (var i = 0, l = arguments.length; i < l; ++i) {
if(arguments[i] instanceof Array) {
for (var j = 0, m = arguments[i].length; j < m; ++j) {
this.push(arguments[i][j]);
}
} else {
this.push(arguments[i]);
}
}
});
// パターン2。forEach の polyfill が要るわいな。
/*
Array.prototype.pushArrayElement || (Array.prototype.pushArrayElement = function() {
if (arguments.length === 0) return;
var t = this;
for (var i = 0, l = arguments.length; i < l; ++i) {
if(arguments[i] instanceof Array) {
arguments[i].forEach(function(elm, idx, ary) {
t.push(elm);
});
} else {
this.push(arguments[i]);
}
}
});
*/
/******************
* テスト(`・ω・´)
******************/
//push
//var a = [0, 1, 2, 3, 4, 5];
//a.push(6);
//alert(a); //1,2,3,4,5,6
//alert(a[6]); //6
//複数の要素をpush
//var b = [0, 1, 2, 3, 4, 5];
//b.push(6, 7, 8);
//alert(b); //0,1,2,3,4,5,6,7,8
//alert(b.length); //9
//alert(b[6]); //6
//配列をpush
//var c = [0, 1, 2, 3, 4, 5];
//c.push([6, 7, 8]);
//alert(c);
//alert(c.length); //7 "つまり配列がまるごと一個の配列要素としてpushされ、多次元配列化している"
//alert(c[6]); //6,7,8
//配列を引数として渡し、各要素をプッシュする関数。もっといい関数名つけたい
//var d = [0, 1, 2, 3, 4, 5];
//d.pushArrayElement([6, 7, 8]);
//alert(d); //0,1,2,3,4,5,6,7,8
//alert(d.length); //9
//alert(d[6]); //6
//複数の配列が引数に指定可能
var e = [0, 1];
var f = [3, 4, 5];
e.pushArrayElement(2, f, [6, 7, 8]);
alert(e);
alert(e.length);
alert(e[6]);