Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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将数组拆分为基于一个值的多个数组?_Javascript_Arrays_Split_Indexof - Fatal编程技术网

如何使用Javascript将数组拆分为基于一个值的多个数组?

如何使用Javascript将数组拆分为基于一个值的多个数组?,javascript,arrays,split,indexof,Javascript,Arrays,Split,Indexof,我有一个数组,我想根据“Finished”值将其拆分为多个数组,当我找到它时,我会拆分数组 我的代码是: var输入=['urlGettingF','├─破碎的─aquaHTTP_404','├─破碎的─url1HTTP_404、ok、urlok、Finished、, 'urlgottingf2','├─破碎的─url1HTTP_404','├─破碎的─url21HTTP_404,“已完成”, “urlGettingF3”├─破碎的─url3HTTP_404','├─破碎的─URL213 ht

我有一个数组,我想根据“Finished”值将其拆分为多个数组,当我找到它时,我会拆分数组

我的代码是:

var输入=['urlGettingF','├─破碎的─aquaHTTP_404','├─破碎的─url1HTTP_404、ok、urlok、Finished、,
'urlgottingf2','├─破碎的─url1HTTP_404','├─破碎的─url21HTTP_404,“已完成”,
“urlGettingF3”├─破碎的─url3HTTP_404','├─破碎的─URL213 http_404,“完成”
];
函数chunkArray(数组,大小){
让结果=[]
for(数组的值){
让lastArray=result[result.length-1]
如果(!lastary | | lastArray.length==大小){
结果。推送([值])
}否则{
lastArray.push(值)
}
}
返回结果
}
const x=input.findIndex(element=>element.indexOf('Finished')>-1)

log(chunkArray(input,x+1))您可以使用
找到所有出现的
已完成的
。减少
,然后通过
创建一个新的数组。在找到的标记处对每个出现进行切片

var输入=['urlGettingF','├─破碎的─aquaHTTP_404','├─破碎的─url1HTTP_404、ok、urlok、Finished、,
'urlgottingf2','├─破碎的─url1HTTP_404','├─破碎的─url21HTTP_404,“已完成”,
“urlGettingF3”├─破碎的─url3HTTP_404','├─破碎的─URL213 http_404,“完成”
];
const finishedicies=输入。减少((a,项,i)=>{
如果(项目=='Finished'){
a、 推(i);
}
返回a;
}, []);
const chunked=finishedIndicies.map(
(sliceIndex,i,arr)=>input.slice(arr[i-1]==未定义?0:arr[i-1]+1,sliceIndex+1)
);

console.log(分块)您可以使用
找到所有出现的
已完成的
。减少
,然后通过
创建一个新的数组。在找到的标记处对每个出现进行切片

var输入=['urlGettingF','├─破碎的─aquaHTTP_404','├─破碎的─url1HTTP_404、ok、urlok、Finished、,
'urlgottingf2','├─破碎的─url1HTTP_404','├─破碎的─url21HTTP_404,“已完成”,
“urlGettingF3”├─破碎的─url3HTTP_404','├─破碎的─URL213 http_404,“完成”
];
const finishedicies=输入。减少((a,项,i)=>{
如果(项目=='Finished'){
a、 推(i);
}
返回a;
}, []);
const chunked=finishedIndicies.map(
(sliceIndex,i,arr)=>input.slice(arr[i-1]==未定义?0:arr[i-1]+1,sliceIndex+1)
);
console.log(分块)
var输入=['urlGettingF','├─破碎的─aquaHTTP_404','├─破碎的─url1HTTP_404、ok、urlok、Finished、,
'urlgottingf2','├─破碎的─url1HTTP_404','├─破碎的─url21HTTP_404,“已完成”,
“urlGettingF3”├─破碎的─url3HTTP_404','├─破碎的─URL213 http_404,“完成”
];
函数组块数组(arr){
让结果=[
[]
];
设指数=0;
arr.forEach((x,i)=>{
结果[指标].push(x);
如果((i+1)
var输入=['urlGettingF','├─破碎的─aquaHTTP_404','├─破碎的─url1HTTP_404、ok、urlok、Finished、,
'urlgottingf2','├─破碎的─url1HTTP_404','├─破碎的─url21HTTP_404,“已完成”,
“urlGettingF3”├─破碎的─url3HTTP_404','├─破碎的─URL213 http_404,“完成”
];
函数组块数组(arr){
让结果=[
[]
];
设指数=0;
arr.forEach((x,i)=>{
结果[指标].push(x);
如果((i+1)
var输入=['urlGettingF','├─破碎的─aquaHTTP_404','├─破碎的─url1HTTP_404',ok',urlok',Finished',urlGettingF2','├─破碎的─url1HTTP_404','├─破碎的─url21HTTP_404','Finished','urlGettingF3','├─破碎的─url3HTTP_404','├─破碎的─url213HTTP_404','完成']
常数res=输入
.加入(“”)
.split('完成')
.map(item=>item.split(“”).filter(item=>item))
.filter(item=>item.length)
.map(项=>[…项“已完成”])
console.log(res)
var输入=['urlGettingF','├─破碎的─aquaHTTP_404','├─破碎的─url1HTTP_404',ok',urlok',Finished',urlGettingF2','├─破碎的─url1HTTP_404','├─破碎的─url21HTTP_404','Finished','urlGettingF3','├─破碎的─url3HTTP_404','├─破碎的─url213HTTP_404','完成']
常数res=输入
.加入(“”)
.split('完成')
.map(item=>item.split(“”).filter(item=>item))
.filter(item=>item.length)
.map(项=>[…项“已完成”])

log(res)
您可以使用以下算法

  • 查找
    indexOf('Finished')
  • 使用
    Array.splice
    函数获取值,直到
    索引
    .splice
    还会更新现有阵列
  • 执行上述操作直到
    indexOf('Finished')>-1
  • 最后,将剩余的
    输入数组
    添加到
    输出数组
  • let input=['urlGettingF','├─破碎的─aquaHTTP_404','├─破碎的─url1HTTP_404、ok、urlok、Finished、,
    'urlgottingf2','├─破碎的─url1HTTP_404','├─破碎的─url21HTTP_404,“已完成”,
    “urlGettingF3”├─破碎的─url3HTTP_404','├─破碎的─URL213 http_404,“完成”
    ];
    让输出=[];
    while(true){
    push(input.splice(0,input.indexOf('Finished')+1));
    if(input.indexOf('Finished')=-1){
    input.length&&output.push(输入);//添加所有剩余值
    打破
    }
    }
    
    控制台日志(输出)您可以使用以下算法

  • 查找
    indexOf('Finished')
  • 使用
    Array.splice
    函数获取值,直到
    索引
    .splice
    还会更新现有阵列
  • 执行上述操作直到
    indexOf('F
    
    let keywordToFind = 'urlGettingF';
    
    const result = input.reduce((a, c) => {
        (c.includes(keywordToFind)) ? a.push([c]) : a[a.length - 1].push(c); 
        return a;
    }, []);