jquery makeArray函数

peter20091001 2017-12-04 09:26:36
var obj = {
0: "CodePlayer",
1: "Hello",
2: 18,
3: true
};
var arr = $.makeArray(obj);
for(var i = 0;i < arr.length;i ++) {
document.write(arr[i]+ " ");
}
为什么输出结果为[object Object] 而不是每个元素?
...全文
231 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuqiz1981 2017-12-04
  • 打赏
  • 举报
回复
直接使用JQ遍历啊! $.each(obj, function (n,v) { console.log(n,v); })
roffer 2017-12-04
  • 打赏
  • 举报
回复
makeArry,是把伪数组变成数组(如arguments等),而把object转换成数组是直接把该对象作为一个项放进去,所以你看到的是[object Object],要实现你的效果,可以这样:

Array.prototype.fromObj = function(obj){
    for(var key in obj)
      this[key] = obj[key]
    return this;
  }
  
  Object.prototype.toArray = function(){
    var arr = [];
    for(var key in this){
      arr[key] = this[key];
    }
    return arr;
  }

  var obj = {
    0: "CodePlayer",
    1: "Hello",
    2: 18,
    3: true
  };

  var arr1 = [].fromObj(obj);
  console.log(arr1);

  var arr2 = obj.toArray();
  console.log(arr2);

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧