这里有两个数组,分别为
var arr1 = [5, 6, 7, 8, 9];
var arr2 = ['a', 'b', 'c', 'd', 'e'];
能否以arr1为key,arr2为value合并成新的数组对象呢?
最终效果为
{ 5:'a', 6:'b', 7:'c', 8:'d', 9:'e'}
谢谢。
这里有两个数组,分别为
var arr1 = [5, 6, 7, 8, 9];
var arr2 = ['a', 'b', 'c', 'd', 'e'];
能否以arr1为key,arr2为value合并成新的数组对象呢?
最终效果为
{ 5:'a', 6:'b', 7:'c', 8:'d', 9:'e'}
谢谢。
@沙渺 使用的underscore.js
的确有这个函数,但不是_.zip()
,而是_.object()
:
<script src="http://underscorejs.org/underscore-min.js"></script>
<script>
var arr1 = [5, 6, 7, 8, 9];
var arr2 = ['a', 'b', 'c', 'd', 'e'];
console.log( _.object(arr1, arr2) );
</script>
Object {5: "a", 6: "b", 7: "c", 8: "d", 9: "e"}
const keys = ["a", "b", "c", "d"];
const values = [1, 2, 3, 4, 5, 6, 7, 8];
const mergeKeyValue = (keys, values) =>
keys
.slice(0, Math.min(keys.length, values.length)) // 这一步为了取出两个数组最短长度,如果不做这一步,那就需要考虑某一方不存在值的情况
.reduce((target, key, index) => ({ ...target, [key]: values[index]}), {});
mergeKeyValue(keys, values)
// 输出:{a: 1, b: 2, c: 3, d: 4}
8 回答4.8k 阅读✓ 已解决
6 回答3.5k 阅读✓ 已解决
5 回答2.9k 阅读✓ 已解决
5 回答6.4k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
如果没有重复的话: