您的位置:首页技术文章
文章详情页

javascript - 在js for in 循环中,使用数组的push方法获取对象的属性,结果却未改变数组

【字号: 日期:2023-03-02 16:06:58浏览:18作者:猪猪

问题描述

如题不想用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