Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Wenn in der js for in-Schleife die Push-Methode des Arrays verwendet wird, um die Eigenschaften des Objekts abzurufen, wird das Array nicht geändert

Wie bereits erwähnt
Ich möchte nicht getOwnPropertyNames von jquery verwenden

var getProperty = function(obj) {
    var nArr = [];
    for (var i in obj) {
        nArr.push[i];
    }
    console.log(nArr);
    return nArr;
}
getProperty({a:1,b:2})

Das endgültig zurückgegebene Ergebnis ist [];
Wenn es durch

ersetzt wird
var getProperty = function(obj) {
    var nArr = [],
        k = 0;
    for (var i in obj) {
        nArr[k] = i;
        k++;
    }
    console.log(nArr);
    return nArr;
}
getProperty({a:1,b:2});

kann das richtige Ergebnis ['a','b'] zurückgeben, warum

扔个三星炸死你扔个三星炸死你2663 Tage vor805

Antworte allen(3)Ich werde antworten

  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-07-05 10:59:43

    nArr.push(i)
    括号打错!!!!

    Antwort
    0
  • 阿神

    阿神2017-07-05 10:59:43

    JS 的 for in 存在 hasOwnProperty 的坑。
    你想要返回 ['a', 'b'],只需:

    Object.keys(obj)

    即可(支持 IE9+)。

    Antwort
    0
  • typecho

    typecho2017-07-05 10:59:43

    nArr.push[i];这个你确定运行不会报错?

    Antwort
    0
  • StornierenAntwort