为什么限制不适用于拆分方法?

时间:2014-10-24 12:14:04

标签: javascript split

我处于这样一种情况,即我必须分开直到第一次出现角色|。现在假设我有一个字符串var str = "cat|bird|cow",我希望将其分解为

['cat', 'bird|cow']

所以为了做到这一点,我使用了split字符串方法。正如MDN教程和Javascript: The Good Parts一书中所述,有人写过这个方法有两个参数,一个是separator,另一个是limit

这对我来说是理想的方法。但是,当,仅仅为了实验,我在谷歌控制台测试了这个我得到了意想不到的结果!

var a = "cat|bird|cow" // Undefined
a  // "cat|bird|cow"
a.split('|', a.indexOf('|')) // ['cat', 'bird', 'cow']      

但我不想要这个!

为什么限制不起作用?最后更新的javascript版本删除了吗?

如果'不'那么为什么它不起作用?

谢谢!

3 个答案:

答案 0 :(得分:2)

split的第二个参数定义了你想要的项目数量:

a.split('|', 1) // ['cat']
a.split('|', 2) // ['cat', 'bird']

我可能会拆分,切片和加入:

var values = a.split('|');
var output = [values[0], values.slice(1).join('|')];

console.log(output); // ["cat", "bird|cow"]

答案 1 :(得分:2)

你可以简单地说;

var i = a.indexOf("|");
a = [a.substr(a, i), a.substr(i + 1)];

>> ['cat', 'bird|cow']

答案 2 :(得分:2)

执行splitshiftjoin

var ar=str.split('|');
ar=[ar.shift(),ar.join('|')];

玩弄小提琴。 http://jsfiddle.net/j8gkua24/