昨天遇到一个需求,假如现在有两组数组分别为
1 2
| var arr1 = [5, 6, 7, 8, 9]; var arr2 = ['a', 'b', 'c', 'd', 'e'];
|
想要将上面这两组数组以arr1为key,以arr2为value合并成新数组对象
最终结果如下:
1
| { 5: 'a', 6: 'b', 7: 'c', 8: 'd', 9: 'e' }
|
很简单需求吧,想了很久,自己也还没写出来,很惭愧。
于是跑到 sf 上提问,很快就收到了满意的答案。
1 2 3 4 5 6 7 8 9
| var arr1 = [5, 6, 7, 8, 9]; var arr2 = ['a', 'b', 'c', 'd', 'e']; var obj = {}; for(var i=0, len=arr1.length; i<len; i++) { obj[arr1[i]] = arr2[i]; } console.log(obj); // Object {5: "a", 6: "b", 7: "c", 8: "d", 9: "e"}
|
看到了这个答案后,狠狠的给自己扇一把掌
自己的思路跟他的一样,就是不知道自己为什么要再循环一次,蠢si了…
最后结合项目本身的情况,直接使用 Underscore.js 里面的方法
1 2 3 4
| var arr1 = [5, 6, 7, 8, 9]; var arr2 = ['a', 'b', 'c', 'd', 'e']; var obj = _.object(arr1, arr2); console.log(obj); // Object {5: "a", 6: "b", 7: "c", 8: "d", 9: "e"}
|
Underscore.js 里面的 _.object() 方法也写得挺简单的,找个时间把源码给翻翻看。。。
ps:感谢所有帮忙解答这个问题的人。。