blu*_*sky -3 javascript jquery
使用下面的代码,我尝试将可变长度的数组转换为一个对象,其中位置 i 处的项目是对象名称,位置 i+1 处的项目是项目值。例如 :
arr = [];
arr.push('a');
arr.push(1);
arr.push('b');
arr.push(2);
arr.push('c');
arr.push(3);
/* Want to create an object that is of type : */
var ob = {a:1 , b:2 , c:3}
console.log(ob)
Run Code Online (Sandbox Code Playgroud)
这是我试图用来实现此目的的代码:
var ob2 = {}
for (var i = 0; i < arr.length; i++) {
ob2.arr[i] = arr[i + 1]
i = i + 1
}
Run Code Online (Sandbox Code Playgroud)
但收到错误:
(index):63 Uncaught TypeError: Cannot set property '0' of undefined
at window.onload ((index):63)
Run Code Online (Sandbox Code Playgroud)
小提琴: https: //jsfiddle.net/wxkkjzm0/
arr = [];
arr.push('a');
arr.push(1);
arr.push('b');
arr.push(2);
arr.push('c');
arr.push(3);
/* Want to create an object that is of type : */
var ob = {a:1 , b:2 , c:3}
console.log(ob)
Run Code Online (Sandbox Code Playgroud)
arr 和 ob2 被定义为该错误属于哪个?
您可以将索引变量增加2,因为您需要一对来分配键/值对。
var array = ['a', 1, 'b', 2, 'c', 3],
object = {},
i
for (var i = 0; i < array.length; i += 2) {
object[array[i]] = array[i + 1];
}
console.log(object);Run Code Online (Sandbox Code Playgroud)