JS 数组转对象

方法1  

使用for in 遍历

var arr=[1,2,3,4];

var obj={};//定义空对象

var obj2={};//定义空对象

for(var key in arr){ //key为键名(属性)

obj[key]=arr[key]

}

console.log(obj)//{ '0': 1, '1': 2, '2': 3, '3': 4 }

方法2 

for循环

var arr=[1,2,3,4];

var obj2={};//定义空对象

for(var i=0;i<arr.length;i++){

  obj2[i]=arr[i]

}

console.log(obj2)//{ '0': 1, '1': 2, '2': 3, '3': 4 }

衍生其他知识:

根据对象键名唯一的特性,可以使用方法1和方法2的变形进行数据去重,如:方法一变形,obj[arr[key]]=arr[key];方法2,obj2[arr[i]]=arr[i]。

方法一变形进行数据去重:

var arr2=[1,1,3,4,3];

let obj3={}

for(var key in arr2){ //key为键名(属性)

  obj3[arr2[key]]=arr2[key]

  }

  console.log(obj3)//{ '1': 1, '3': 3, '4': 4 }

方法二变形数据去重: 

var arr=[1,3,3,3];

var obj2={};//定义空对象

for(var i=0;i<arr.length;i++){

  obj2[arr[i]]=arr[i]

}

console.log(obj2)//{ '1': 1, '3': 3}

 方法3  

...扩展运算符方法 (es6)                              

var arr=[1,2,3,4];

var obj2={...arr};

console.log(obj2)//{ '0': 1, '1': 2, '2': 3, '3': 4 }


//衍生其他知识:

console.log(...arr)//1 2 3 4  不加{}的...运算符能把数组转换为字符串形式


let obj={name:'ww'}

let obj2={age:14}

// console.log(...obj)  //报错,obj不是迭代对象

console.log({...obj})//{ name: 'ww' }  加{}就可以正确访问了

console.log({...obj,...obj2})//{ name: 'ww', age: 14 }   合并

let arr=[1,2,4]

let arr2=[3,4,5]

// 合并,...与concat区别

console.log(...arr,...arr2);//1 2 4 3 4 5

console.log(...arr)//1 2 4

console.log(arr.concat(arr2))//[ 1, 2, 4, 3, 4, 5 ]

console.log(arr)//[ 1, 2, 4 ]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值