PHPのforeach
ループのようなものを、JavaScriptで実現できないかと考えています。求めている機能は、以下のようなものです。
foreach($data as $key => $value) { }
JSの for..in
ループを見ていましたが、as
を指定する方法がないようです。これを 'normal'のforループ(for(var i = 0; i < data.length; i++
)で行った場合、key => valueのペアを取得する方法はありますか?
for (var k in target){
if (target.hasOwnProperty(k)) {
alert("Key is " + k + ", value is " + target[k]);
}
}
hasOwnPropertyは、
target` がプロトタイプから継承したのではなく、本当にそのプロパティを持っているかどうかをチェックするために使用します。もう少し簡単に言うと
for (var k in target){
if (typeof target[k] !== 'function') {
alert("Key is " + k + ", value is" + target[k]);
}
}
これは、k
がメソッドではないことをチェックするだけです(target
がarray
の場合、indexOf
、push
、pop
など、多くのメソッドが警告されます)。