我有一个数组= [A,1,0,1,0,1,B,1,0,0,1,A,1] 需要将这个数组分割成多个数组。分割将出现在“A”或“B”位置,如下面的新阵列所示。新阵列的名称中使用字符串“群”加一个递增的数字从1开始或0 最终的结果应该是这样的:如何将数组拆分为多个数组,每个数组都有唯一的名称
group1 = [A,1,0,1,0,1]
group2 = [B,1,0,0,1]
group3 = [A,1]
我可以得到数组的,我需要通过创建一个部分数组(arrTemp),所以我可以存储位置(索引)并稍后使用slice()来获得我想要的部分(A,1,0,1,0,1),(A,1,0,0,1 )和(A,1)。但我不知道如何来存储我的切片的结果()的在递增唯一的名称由数组1 这是我到目前为止已经试过:
var arr = [A,1,0,1,0,1,B,1,0,0,1,A,1];
arr.forEach(myFunction)
function myFunction(item, index) {
if ((item=="A") || (item=="B")) {
arrTemp.push(index);
arrTemp=arrTemp; //not sure I need this. I did this so it array would be global
}
}
for (var i = 0; i < arr.length; i++){
sectArray = arr.slice(arrTemp[i]+1,arrTemp[i + 1])
'group' + [i] = [arrTemp[i],sectArray]; //here is my problem.
}
由于期待你的答复。起初我并没有看到我对解决方案有多么简单和紧密。我可以简单地将我的行从'group'+ [i]更改为group [i],并在开头添加了var group = []。我只是没有意识到我可以使用“父母阵列”来保存东西。 – MarkL
@MarkL正好!你在正确的轨道上。祝你好运! –
希望你能帮助我。尽管解决方案确实创建了一个“全部用我的东西”的数组;我后来当我不得不抓住如 组[0] [2]或组[0] [4] 我注意到,我只有两个元素(组[0] [2]或组[0] [4 ] ) 看起来好像该过程在组[0] [0] [0]和 “1,0,1,0,1”中在组[0] [0] [1]中放置了“A”。我该如何解决? 组[0] [2]导致“未定义”。 – MarkL