鍍金池/ 問答/HTML5  HTML/ 數(shù)組轉(zhuǎn)換為對象

數(shù)組轉(zhuǎn)換為對象

我有一個數(shù)組 如[1, 2, ,3, 4,......]長度不確定
需要轉(zhuǎn)換成對象成 {a:1, b:2, c:3, d: 4,.....},
請問大佬們怎么解決

回答
編輯回答
我甘愿

還是不用要用'a'吧, 生成key值也麻煩, 用map, 索引做key

var newArr = [1,2,3].map(function(v, idx){
    var obj = {};
    obj[idx] = v;
    return obj;
});
2017年10月10日 22:22
編輯回答
硬扛

長度不確定,只能遍歷吧。但你長度不確定,比如超過26,key已經(jīng)用完26個小寫字母,接下來用什么?

如果能確定小于26,倒是可以直接charcode來++

let arr = [1,2,3,4,5];
let code = 'a'.charCodeAt();
let narr = {};
for(let v of arr){
    let k = String.fromCharCode(code++);
    narr[k] = v;
}
console.log(narr);

2018年8月2日 21:16
編輯回答
司令
var arr = [1, 2, 3, 4, ……];
var arrString = ['a', 'b', 'c', 'd', ……];//與上面?zhèn)€數(shù)相同
var obj = {};
for(i in arr){
    obj[arrString[i]] = arr[i];
}
2017年2月16日 12:42
編輯回答
孤巷
var rtn = {};
[ 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4 ].forEach( ( val, idx ) => {
    rtn[ Array( ~~( idx / 26 ) + 2 ).join( String.fromCharCode( 97 + idx % 26 ) ) ] = val;
} )

簡單的處理下key重復(fù)的問題

2018年4月4日 22:28