2

Array のような JS コア オブジェクト用の小さいながらも便利な追加メソッドがいくつかあります。

Array.prototype.indexOfObject(プロパティ、値)

このメソッドは、(オブジェクトの)配列内のオブジェクトのインデックスを返します。ここで、プロパティ==値であり、シンプルで生産的です。

ただし、配列を列挙すると、メソッドが表示されるため、毎回次のようにする必要があります。

for(var i in MyArray){
  if(typeof(MyArray[i])=="typeneeded"){
    // do something
  }
}

私が知っているように、defineProperty は列挙不可能なメソッドを作成するので、すべてのブラウザがそれを受け入れると問題が解決します。ところで、defineProperty を使用することはすでに安全ですか? IE9はうまく動作しますか?他のブラウザ?これを行う3番目の方法はありますか?

4

3 に答える 3

1

従来の for ループまたは forEach を使用するだけです。

var i,
    ary = ['val0', 'val1', 'val2'];

Array.prototype.getElem = function (i) {
    return this[i];
};

console.log('First way - using standard for loop:');
for (i = 0; i < ary.length; i++) {
    console.log('Element ' + i + ' has value ' + ary[i]);
}

console.log('second way - use "first order function" - "functional programming" style');
ary.forEach(function (e, i) {
    console.log('Element ' + i + ' has value ' + ary[i]);
});

console.log('getElem says: element 2 has value ' + ary.getElem(2));

フィドル

于 2013-10-16T17:54:44.073 に答える