Javascript:将数组中的2个索引合并为1个索引。3、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7;2、7、7、7、7、7、7、7、7、7、2、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7#x27;]
第一次在这里发布,所以提前感谢您的帮助。我正在使用Javascript 我有一个数组:Javascript:将数组中的2个索引合并为1个索引。3、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7;2、7、7、7、7、7、7、7、7、7、2、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7、7#x27;],javascript,arrays,Javascript,Arrays,第一次在这里发布,所以提前感谢您的帮助。我正在使用Javascript 我有一个数组:['2','3','5','(G1','2'] 我想换成['2','3','5(G1)','2'] 换句话说,我想把索引2和3合并成一个索引。每当阵列中出现G1/G2/G3时,我都想将其与前面的数字连接起来 这可能吗 编辑:我以前尝试过搜索加入和合并索引,但我不想搜索.reduce或.match等。我也查看了这里的其他帖子,看看以前是否有人问过类似的问题。下一次我将更加小心地提供细节(即所有数组项都是字符串)
['2','3','5','(G1','2']
我想换成['2','3','5(G1)','2']
换句话说,我想把索引2和3合并成一个索引。每当阵列中出现G1/G2/G3时,我都想将其与前面的数字连接起来
这可能吗
编辑:我以前尝试过搜索加入和合并索引,但我不想搜索.reduce或.match等。我也查看了这里的其他帖子,看看以前是否有人问过类似的问题。下一次我将更加小心地提供细节(即所有数组项都是字符串)
感谢那些花时间回答问题的人,这些解决方案很有效。您可以检查元素并添加到上一项中
const
数据=[2,3,5'(G1'),2],
结果=数据。减少((r,v)=>{
if(v.toString().match(/\(G\d++\)/)r[r.length-1]+=''+v;
否则r.push(v);
返回r;
}, []);
控制台日志(结果)代码>如果G字符串(起初没有双关语)总是以括号开头,而其他字符串则不会,那么我们可以通过该括号匹配并减少字符串。你会在一行中有多个G字符串吗
这里的步骤是:
检查每个当前值是否以(G
开始,以结束)
如果是这样,我们将把该字符串添加到前面的值a[a.length-1]
,用一个空格分隔
如果没有,我们只需正常地将该项推送到累加器数组
在每次迭代中,我们将返回更新的累加器a
这应该适用于您提供的示例:
let before=['2','3','5','(G1','2'];
让after=before.reduce((a,c,i)=>((i&c.slice(0,2)==“(G”&c.slice(-1)==”)?(a[a.length-1]=`a[a.length-1]}${c}`:a.push(c)),a),[]);
console.log(之后)代码>什么是(G1)
?它是一个字符串?它是一个集合还是一个函数?如果它是一个函数且返回类型为数组,则使用扩展操作…
,它将work@chazsolo这是一个string@AzeemAslam我对编码是新手,所以我还不熟悉术语集。但是,如果谷歌给我提供了与您相同的定义(数据类型存储唯一值,没有任何特定顺序),那么这几乎是正确的,除了(G1)值总是出现在数字5或更高的后面。据我所知,该模式只出现在数字5之前。。。但无论如何,如果有必要,它应该被消毒。嗨,尼娜·斯科尔斯,你的假设完全正确。正如所料,你的答案是有效的,而且写得非常优雅。非常感谢你抽出时间来帮助我@sami还添加了一个检查,以确保G字符串不是数组中的第一项。如果是的话,它只会正常地将数组项推送到数组中。您好@Brandon McConnell,非常感谢您向我展示了您的解决方案,并花时间写了一个解释!当然可以谢谢你,山姆!