Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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 我需要根据从另一个数组中搜索元素的情况,将一个数组拆分为N个数组_Javascript_Jquery_Arrays_Typescript_Angular7 - Fatal编程技术网

Javascript 我需要根据从另一个数组中搜索元素的情况,将一个数组拆分为N个数组

Javascript 我需要根据从另一个数组中搜索元素的情况,将一个数组拆分为N个数组,javascript,jquery,arrays,typescript,angular7,Javascript,Jquery,Arrays,Typescript,Angular7,我需要根据从另一个数组中搜索元素的情况,将一个数组拆分为N个数组 考虑一下这个场景 var test = ["1","2","3","env","6","7","8","uat","2344","wersdf","sdfs"]; var test2=["env","uat"]; 现在我想要一张像这样的地图 { env:["6","7","8"], uat:["2344","wersdf","sdfs"] } 请注意,test2和test1中的数组项是动态的。但是,在测试数组中,两个test2

我需要根据从另一个数组中搜索元素的情况,将一个数组拆分为N个数组

考虑一下这个场景

var test = ["1","2","3","env","6","7","8","uat","2344","wersdf","sdfs"];
var test2=["env","uat"];
现在我想要一张像这样的地图

{
env:["6","7","8"],
uat:["2344","wersdf","sdfs"]
}

请注意,test2和test1中的数组项是动态的。但是,在测试数组中,两个test2值不会一个接一个地出现,它们之间会有一些项。

您可以使用
array\Reduce

  • 首先迭代
    test2
    数组并匹配
    test
  • 然后使用起始值为
    ind+1
    的forloop。它将以delimiter的下一个参数为目标
  • 使用
    acc[b].push()将值传递给数组后
  • 然后在else条件下使用
    test2.indexOf(test[i])==-1检测下一个分隔符。此时需要中断语句。然后再次启动
    test2的第二个参数
  • 函数映射器(test,test2){
    返回test2.reduce((acc,b)=>{
    设ind=test.indexOf(b);//检测分隔符的起始索引
    如果(ind>-1){
    acc[b]=acc[b]| |[];
    对于(变量i=ind+1;i
    var测试=[“1”、“2”、“3”、“环境”、“6”、“7”、“8”、“uat”、“2344”、“wersdf”、“sdfs”];
    var test2=[“环境”、“uat”];
    var indexArray=[];
    test2.map(键=>{
    var指数=测试指数(键);
    指数推力(指数);
    })
    var obj={};
    
    对于(var i=0;看。您尝试过什么吗?如果test2中的值将被重复,并且结果是一个对象,则某些键将被覆盖。@Utkanos我尝试过此操作,但不确定如何执行N次。@KalimahApps是的,您是对的,我添加了不应重复的条件。您好,如何替换n使用不同数组的字符串数组。ex var test1=[“1”,“2”]我必须用var test2=[“4”,“5”]替换“1”,这是最终值,应该是test1=[“4”,“5”,“2”]test1 test2的值可以重复。请帮助。@Jananiharaharan您评论的问题与原始问题不同。请将评论作为新问题发布。共享链接我将发布关于该问题的答案,或者用上述评论问题更新原始问题。因为这对未来的访问者更有用,更容易理解