使用两个数组在javascript中分配两个不同的值

时间:2017-03-23 14:21:06

标签: javascript arrays ecmascript-6

我知道我的问题标题看起来很奇怪,但我不知道如何提出这样的问题。

我有两个arrays

a = [1,2,3]

b = ["gf","gdf","gdf"]

我有一个这样的退货声明:

return {
    options: a.map(value => ({ label: value, value: value }))
};

但我希望选项内部的值取b数组的值而不是a数组的值。怎么做?

2 个答案:

答案 0 :(得分:5)

您可以将第二个参数传递给map()这是索引,并使用它来获取b数组中的元素。

var a = [1,2,3], b = ["gf","gdf","gdf"]

var options = a.map(function(value, index) {
 return { label: value, value: b[index] }
})

console.log(options)

如果你想使用ES6和箭头功能,你可以得到相同的结果。

var a = [1,2,3], b = ["gf","gdf","gdf"]

var options = a.map((v, i) => ({label: v, value: b[i]}))
console.log(options)

答案 1 :(得分:2)

你可以编写一个迭代多个数组的mapn函数,并调用一个函数,其参数取自每个数组:

a = [1,2,3]
b = ["gf","gdf","gdf"]
    
function mapn(arrays, fn) {
  return arrays[0].map((_, i) => fn(...arrays.map(array => array[i])));
}

console.log(mapn([a, b], (label, value) => ({label, value})));