一、javascript将数组变为对象并封装一个数组变对象的函数
1.将数组变为对象
输入 var arr = ['name','fanzhen','age',12]
输出:{name:'fanzhen',age:12}
思路:将数组变为对象,首先要发现keysy以及values在数组中的规律,用for 循环去遍历它,能判断出求keys的条件求values的条件,并接受这个属性和值。
求出属性和值后,就是怎么想办法把他从数组便对象。这个时候就可以遍历keys values并将数据存进obj对象中。
var arr = ['name','fanzhen','age',12];
var keys=[];
var values=[];
//遍历数组
for(var i=0;i<arr.length;i++){
if(i%2==0){ //判断数组中的值是keys 还是values
keys[keys.length]=arr[i];
}else{
values[values.length]=arr[i]
}
}
console.log(keys); //此时以及求出了keys values,可以打印验证
console.log(values);
var obj={}; //声明一个新的对象
for(var j=0;j<keys.length;j++){ //遍历keys或者values不过这个时候最后遍历keys,因为values可能没有
obj[keys[j]]=values[j]
}
console.log(obj); //打印验证
2: 封装一个数组变对象的函数
输入 var arr = ['name','fanzhen','age',12]
输出:{name:'fanzhen',age:12}
思路:这个题的大致思路其实,可以先不用函数,直接使用for循环等然后套一个数组进去验证一下,如果成功的话,把这段代码在封装到函数里。不过此时就要注意哪些是可变的量,哪些不是可变的量。
封装之后,就可以直接调用了,可以传入不同的数组进行验证
var arr = ['name','fanzhen','age',12];
var keys=[];
var values=[];
var obj={};
function arrayToObject(brr){ //此时括号里是形参,接受的是实参的值
for(var i=0;i<brr.length;i++){ //此时遍历的是形参的接受的值
if(i%2==0){
keys[keys.length]=arr[i];
}else{
values[values.length]=arr[i];
}
}
for(var j=0;j<keys.length;j++){
obj[keys[j]]=values[j]
}
return obj;
}
obj=arrayToObject(arr); // 括号里边是实参接受数组arr的值,接收之后把值再传给形参
console.log(obj);