方法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 ]