我知道我的问题标题看起来很奇怪,但我不知道如何提出这样的问题。
我有两个arrays
a = [1,2,3]
和
b = ["gf","gdf","gdf"]
我有一个这样的退货声明:
return {
options: a.map(value => ({ label: value, value: value }))
};
但我希望选项内部的值取b
数组的值而不是a
数组的值。怎么做?
答案 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})));