Javascript 如何分割数组?
假设我有一个数组变量:Javascript 如何分割数组?,javascript,arrays,Javascript,Arrays,假设我有一个数组变量: arr = ["a","b","c","d","a","b","a","b","a"] 因此,a出现的方式是随机的 我想把这个数组从一个a分割到下一个a 例如,我的新阵列可能是 [["a","b","c","d"],["a","b"],["a","b"],["a"]] 您可以将数组转换为字符串,然后使用match()和RegExp。然后使用map()获取数组数组 让arr=[“a”、“b”、“c”、“d”、“a”、“b”、“a”、“b”、“b”、“a”] 让res=
arr = ["a","b","c","d","a","b","a","b","a"]
因此,a
出现的方式是随机的
我想把这个数组从一个a
分割到下一个a
例如,我的新阵列可能是
[["a","b","c","d"],["a","b"],["a","b"],["a"]]
您可以将数组转换为字符串,然后使用
match()
和RegExp
。然后使用map()
获取数组数组
让arr=[“a”、“b”、“c”、“d”、“a”、“b”、“a”、“b”、“b”、“a”]
让res=arr.join(“”).match(/a[^a]+/g)).map(x=>[…x]);
log(res)
您可以将数组转换为字符串,然后使用match()
和RegExp
。然后使用map()
获取数组数组
让arr=[“a”、“b”、“c”、“d”、“a”、“b”、“a”、“b”、“b”、“a”]
让res=arr.join(“”).match(/a[^a]+/g)).map(x=>[…x]);
console.log(res)
如果您有想要的值,您可以减少数组并将新数组推送到结果中。然后将所有值推送到结果集中的最后一个数组
var数组=[“a”、“b”、“c”、“d”、“a”、“b”、“a”、“b”、“a”、“b”、“a”],
结果=数组。减少((r,v,i)=>{
如果(!i | | v=='a')r.push([]);
r[r.length-1]。推力(v);
返回r;
}, []);
控制台日志(结果)代码>如果您有想要的值,您可以减少数组并将新数组推送到结果。然后将所有值推送到结果集中的最后一个数组
var数组=[“a”、“b”、“c”、“d”、“a”、“b”、“a”、“b”、“a”、“b”、“a”],
结果=数组。减少((r,v,i)=>{
如果(!i | | v=='a')r.push([]);
r[r.length-1]。推力(v);
返回r;
}, []);
控制台日志(结果)
您可以使用split()/join()
方法来完成此操作,例如:
让arr=[“a”、“b”、“c”、“d”、“a”、“b”、“a”、“b”、“b”、“a”];
设r=arr.join(“”).split(“”).map(x=>([“a”,…x.split(“”)]);
r、 移位();
控制台日志(r)
您可以使用split()/join()
方法来完成此操作,例如:
让arr=[“a”、“b”、“c”、“d”、“a”、“b”、“a”、“b”、“b”、“a”];
设r=arr.join(“”).split(“”).map(x=>([“a”,…x.split(“”)]);
r、 移位();
控制台日志(r)
一种简洁的方法是将字符连接成一个字符串,然后在每个A
上使用正向前瞻正则表达式进行拆分,以将A
保留在拆分部分中,最后将生成的部分拆分为数组:
常量arr=[“a”、“b”、“c”、“d”、“a”、“b”、“a”、“b”、“b”、“a”、“b”、“a”];
const result=arr.join(“”).split(/(?=a)/).map(x=>x.split(“”));
log(JSON.stringify(result))
一种简洁的方法是将字符连接成一个字符串,然后在每个A
上使用正向前瞻正则表达式进行拆分,以将A
保留在拆分部分中,最后将生成的部分拆分为数组:
常量arr=[“a”、“b”、“c”、“d”、“a”、“b”、“a”、“b”、“b”、“a”、“b”、“a”];
const result=arr.join(“”).split(/(?=a)/).map(x=>x.split(“”));
log(JSON.stringify(result))代码>您可以执行以下操作
首先将数组转换为字符串:-“abcdababa”(使用.join(“”)
现在使用“a”作为分隔符拆分字符串:-[“”,“bcd”,“b”,“b”,““”](使用.split(“a”))
现在在所有元素前面加上“a:-[“a”,“abcd”,“ab”,“ab”,“a”](使用.map(x=>“a”+x))
现在使用“”(空字符串)作为seperator拆分所有元素:-[[“a”]、[“a”、“b”、“c”、“d”]、[“a”、“b”]、[“a”、“b”]、[“a”](使用.split(“”)(此步骤将在映射函数内部)
现在删除第一个元素(因为它不是字符串的一部分):-[[“a”、“b”、“c”、“d”]、[“a”、“b”]、[“a”、“b”]、[“a”](使用.shift())
var arr=[“a”、“b”、“c”、“d”、“a”、“b”、“a”、“b”、“a”、“b”、“a”];
变量x1=arr.join(“”).split(“”).map(x=>{
x=“a”+x;
返回x.split(“”);
});
x1.shift();
控制台日志(x1)代码>您可以执行以下操作
首先将数组转换为字符串:-“abcdababa”(使用.join(“”)
现在使用“a”作为分隔符拆分字符串:-[“”,“bcd”,“b”,“b”,““”](使用.split(“a”))
现在在所有元素前面加上“a:-[“a”,“abcd”,“ab”,“ab”,“a”](使用.map(x=>“a”+x))
现在使用“”(空字符串)作为seperator拆分所有元素:-[[“a”]、[“a”、“b”、“c”、“d”]、[“a”、“b”]、[“a”、“b”]、[“a”](使用.split(“”)(此步骤将在映射函数内部)
现在删除第一个元素(因为它不是字符串的一部分):-[[“a”、“b”、“c”、“d”]、[“a”、“b”]、[“a”、“b”]、[“a”](使用.shift())
var arr=[“a”、“b”、“c”、“d”、“a”、“b”、“a”、“b”、“a”、“b”、“a”];
变量x1=arr.join(“”).split(“”).map(x=>{
x=“a”+x;
返回x.split(“”);
});
x1.shift();
控制台日志(x1)代码>使用简单的forEach
var arr=[“a”、“b”、“c”、“d”、“a”、“b”、“a”、“b”、“a”、“b”、“a”];
var结果=[];
var i=-1;
arr.forEach(功能(val){
如果(val='a'){
结果:推送([]);
i++;
}
结果[i].push(val);
})
控制台日志(结果)代码>使用简单的forEach
var arr=[“a”、“b”、“c”、“d”、“a”、“b”、“a”、“b”、“a”、“b”、“a”];
var结果=[];
var i=-1;
arr.forEach(功能(val){
如果(val='a'){
结果:推送([]);
i++;
}
结果[i].push(val);
})
控制台日志(结果)代码>为了实现这一点,您尝试了什么?为什么不这样做?你在这儿有什么心事?您没有提供任何代码:/这里需要的最小代码是一个简单的,用于循环,并检查当前字符是否为“a”
。请阅读:@Meet-referethis我很抱歉我没有分享我的代码,你为了实现这一点做了哪些尝试?你为什么不这么做?你在这儿有什么心事?您没有提供任何代码:/这里需要的最小代码是一个简单的,用于循环,并检查当前字符是否为“a”
。请阅读:@Meet refere this我很抱歉我没有分享我的代码,我想知道如果数组的第一个元素不是“a”
?@sudhiroja这是一个无效的场景,因为字符总是按字母顺序从a
排序到