Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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:将数组中的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等。我也查看了这里的其他帖子,看看以前是否有人问过类似的问题。下一次我将更加小心地提供细节(即所有数组项都是字符串)

第一次在这里发布,所以提前感谢您的帮助。我正在使用Javascript

我有一个数组:
['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,非常感谢您向我展示了您的解决方案,并花时间写了一个解释!当然可以谢谢你,山姆!