简体   繁体   English

用值分割数组-像String.split

[英]split Array with value - like String.split

In short, like this: 简而言之,像这样:

> l = ['asdf', '<br>', 'lorem', 'ipsum', '<hr>', 'dollar', 'sit', 'amex']
> l.split(/<.+>/)
[
  [ 'asdf' ] ,
  [ 'lorem', 'ipsum' ] ,
  [ 'dollar', 'sit', 'amex' ]
]

I wrote join -and- split one, but it seem slow with large array. 我写了一个join -and- split ,但是在大型数组中看起来很慢。

Is there any better solutions? 有没有更好的解决方案? indexOf() ? indexOf()吗?

A simple loop would do: 一个简单的循环即可:

var result = [[]];
for (var i = 0; i < l.length; ++i) {
    if (/^<.+>$/.test(l[i]) {
        // start a new inner array
        result.push([]);
    } else {
        // append to the current inner array
        result[result.length-1].push(l[i]);
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM