在javascript ES6中,如何通过索引匹配两个不同数组的项
我有: 结果应该是:在javascript ES6中,如何通过索引匹配两个不同数组的项,javascript,ecmascript-6,functional-programming,Javascript,Ecmascript 6,Functional Programming,我有: 结果应该是: array1 = [ "a" , "b" , "c" , "d" ] array2 = [ 1 ,2 ,3 ] 这里有一个简单的例子应该会有所帮助。如果可以,尝试并优化它 array1=[“a”、“b”、“c”、“d”]; array2=[1,2,3]; newArr=[]; for(设i=0;ilength)), 结果=数据.reduce((r,a)=>a.slice(0,min).map((v,i)=>(r[i]| |“”)+v),[]); 控制台日志(结果)看起
array1 = [ "a" , "b" , "c" , "d" ]
array2 = [ 1 ,2 ,3 ]
这里有一个简单的例子应该会有所帮助。如果可以,尝试并优化它
array1=[“a”、“b”、“c”、“d”];
array2=[1,2,3];
newArr=[];
for(设i=0;i 控制台日志(newArr)代码>您可以获取数组的最小长度,并通过减少数组来映射值
var array1=[“a”、“b”、“c”、“d”],
array2=[1,2,3],
数据=[array1,array2],
min=Math.min(…data.map(({length})=>length)),
结果=数据.reduce((r,a)=>a.slice(0,min).map((v,i)=>(r[i]| |“”)+v),[]);
控制台日志(结果)代码>看起来您希望从两个数组的同一位置获取字符串并将它们组合起来。如果是这样的话,像这样的事情应该会奏效
const a=['a','b','c'];
常数b=[1,2,3,4];
功能联合收割机(a、b){
常量结果=[];
//使用长度和| |来处理不均匀阵列
for(var i=0;i 控制台日志(合并(a、b))代码>很容易,您将遍历其中一个,然后像这样将其添加到另一个
matchedArray = [ "a1" , "b2" , "c3"]
我想你要找的是地图功能:
设a=[“a”、“b”、“c”、“d”];
设b=[1,2,3,4,5];
让shorterArray=a.length>b.length?b:a;
让longerArray=b.length>a.length?b:a;
设c=shorterray.map((c,index)=>(longerray==a)?longerray[index]+c:c+longerray[index]);
控制台日志(c);
//返回[“a1”、“b2”、“c3”]
试试这个:你好,菲利普。欢迎来到StackOverflow。在StackOverflow上发布时,请务必发布一个示例,以便我们可以帮助您。始终张贴您尝试过的代码以及遇到问题的地方,以便我们可以为您提供具体帮助。我认为这些链接答案中的任何一个都不是他们根据结果所要求的答案。for循环中的if语句将防止该错误。真的不确定为什么会投反对票。我举了一个简单明了的例子,我投了反对票,因为我认为它是关闭的(基于一条现已删除的评论),但在我再次看了之后,我删除了我的反对票。如果你把它放在可运行的代码段中,这样人们就可以看到它的实际工作情况了。我不知道有些用户会这么做。@samanime我不知道怎么做。Lol实际上,您可以像.map((c,index)=>…)
那样在.map中获取索引,然后您就不需要找到索引了。但是,如果数组b
的项数比数组a
的项数多,则这将无法按预期工作。您是对的
array1 = [ "a" , "b" , "c" , "d" ];
array2 = [ 1 ,2 ,3 ];
newArray = array2.map((number, index) => {
return array1[index] + number;
});