有条件地连接数组中的一些';JavaScript中的项目

有条件地连接数组中的一些';JavaScript中的项目,javascript,Javascript,假设我有两个长度相同的数组: const a = ['a', 'b', 'c', 'd']; const b = [1, 1, 2, 1]; 我想加入(.join(“”))所有a中的连续项,它们在b中的对应值(即在同一索引处)相等 在这个场景中,我想要得到的是: const result = ['ab', 'c', 'd'] 由于a[0]和a[1]在b中具有相同的对应值(即b[0]==b[1]),并且在a中是连续的,因此它们被加入到同一个字符串中,在结果中形成一个项目。然而,尽管a[3]在b

假设我有两个长度相同的数组:

const a = ['a', 'b', 'c', 'd'];
const b = [1, 1, 2, 1];
我想加入(
.join(“”)
)所有
a
中的连续项,它们在
b
中的对应值(即在同一索引处)相等

在这个场景中,我想要得到的是:

const result = ['ab', 'c', 'd']

由于
a[0]
a[1]
b
中具有相同的对应值(即
b[0]==b[1]
),并且在
a
中是连续的,因此它们被加入到同一个字符串中,在
结果中形成一个项目。然而,尽管
a[3]
b
中的对应值等于
a[0]
a[1]
的对应值,但由于后者不是连续的,所以它不与后者连接。

只要检查
b
中的值在给定索引和成功者处是否相同即可

const
a=['a','b','c','d'];
b=[1,1,2,1],
结果=a.减少((r,v,i)=>{
如果(b[i-1]==b[i])r[r.length-1]+=v;
否则r.push(v);
返回r;
}, []);

控制台日志(结果)您可以使用两个seporate循环;一个用于组合对象中的两个数组并合并具有相同id的连续对象,另一个用于从第一个循环中获取另一个值并创建新数组

常数a=['a','b','c','d'];
常数b=[1,1,2,1];
var步骤=[];
对于(n=0;n控制台日志(结果)很好,到目前为止你都尝试了什么?