javascript学習記録-行列(3)2014/02/21
1172 ワード
前回に続き,データが巡回した.
*for/inを使ったデータの遍歴は推奨されません.引き継ぎの属性に列挙されます.
実験してみます
1
2
3
function(){consolie.logn('I`m Function];
本当にいけないですね.
手動コード検出
1
2
3
もう一つのポイントは、インデックスがマイナスの場合もフィルタリングされます.例えば、
1
2
3
4
フィルタをもう一つ入れます.
最後の言葉、データ遍歴はfor/inを使わないほうがいいです.
ECMAScript 5で定義された新しいエルゴード配列方法forEach
暦をあげる
*for/inを使ったデータの遍歴は推奨されません.引き継ぎの属性に列挙されます.
実験してみます
Array.prototype.test = function(){
console.log('I`m Function');
}
var a = new Array(1, 2, 3);
a[-1] = 4;
for (var index in a) {
console.log(a[index]);
}
システム出力:1
2
3
function(){consolie.logn('I`m Function];
本当にいけないですね.
手動コード検出
for (var i in a) {
if(!a.hasOwnProperty(i)) continue;
console.log(a[i]);
}
今回の出力は:1
2
3
もう一つのポイントは、インデックスがマイナスの場合もフィルタリングされます.例えば、
a[-1] = 4
for (var i in a) { if(!a.hasOwnProperty(i)) continue; console.log(a[i]); }
出力は1
2
3
4
フィルタをもう一つ入れます.
for (var i in a) {
if(!a.hasOwnProperty(i)) continue;
if(String(Math.floor(Math.abs(Number(i)))) !== i) continue;
console.log(a[i]);
}
今回の出力にはインデックスが含まれていません.-1の場合です.最後の言葉、データ遍歴はfor/inを使わないほうがいいです.
ECMAScript 5で定義された新しいエルゴード配列方法forEach
暦をあげる
var data = [1, 2, 3, 4, 5];
var sumOfSquares =0;
data.forEach(function(x){ //
sumOfSquares += x * x;
});
sumOfSquares; //55