Javascript 为什么拆分法中的限制不起作用?

Javascript 为什么拆分法中的限制不起作用?,javascript,split,Javascript,Split,我所处的情况是,只有在字符|第一次出现之前,我才需要拆分。现在假设我有一个字符串sayvar str=“cat | bird | cow”,我想把它分解成 [“猫”、“鸟”、“牛”] 为此,我使用了string的split方法。正如MDN教程和Javascript:Good Parts一书中所述,该方法采用两个参数,一个是分隔符,另一个是限制 这是我理想的方法。但当我只是为了实验,在谷歌控制台上测试时,我得到了意想不到的结果 var a = "cat|bird|cow" // Undefined

我所处的情况是,只有在字符
|
第一次出现之前,我才需要拆分。现在假设我有一个字符串say
var str=“cat | bird | cow”
,我想把它分解成

[“猫”、“鸟”、“牛”]

为此,我使用了string的
split
方法。正如
MDN
教程和
Javascript:Good Parts
一书中所述,该方法采用两个参数,一个是
分隔符
,另一个是
限制

这是我理想的方法。但当我只是为了实验,在谷歌控制台上测试时,我得到了意想不到的结果

var a = "cat|bird|cow" // Undefined
a  // "cat|bird|cow"
a.split('|', a.indexOf('|')) // ['cat', 'bird', 'cow']      
但我不想要这个

为什么限制不起作用?javascript版本的上次更新是否删除了它

如果“否”,那么为什么它不起作用


谢谢

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"]

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"]
你可以简单地

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

>> ['cat', 'bird|cow']
你可以简单地

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

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

执行
拆分
移位
合并

var ar=str.split('|');
ar=[ar.shift(),ar.join('|')];
一把用来演奏的小提琴。
进行
拆分
移位
,以及
加入

var ar=str.split('|');
ar=[ar.shift(),ar.join('|')];
一把用来演奏的小提琴。