成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

javascript - 在js for in 循環中,使用數組的push方法獲取對象的屬性,結果卻未改變數組

瀏覽:179日期:2023-03-02 16:06:58

問題描述

如題不想用jquery的getOwnPropertyNames

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

最后返回的結果是[];如果換成

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});

則可以返回正確的結果[’a’,’b’],為何

問題解答

回答1:

nArr.push(i)括號打錯!!!!

回答2:

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

Object.keys(obj)

即可(支持 IE9+)。

回答3:

nArr.push[i];這個你確定運行不會報錯?

標簽: JavaScript