18

我想问一下是否有某种实用函数可以在提供索引的同时提供数组连接。也许jQuery的原型提供了这个,如果没有,我会自己写:)

我期望的是

var array= ["a", "b", "c", "d"];
function Array.prototype.join(seperator [, startIndex, endIndex]){
  // code
}

这样 array.join("-", 1, 2) 将返回 "bc"

在一个非常常见的 Javascript 库中是否有这种实用功能?


关于全球蠕虫

4

2 回答 2

58

它在本地工作

["a", "b", "c", "d"].slice(1,3).join("-") //b-c

如果你想让它表现得像你的定义,你可以这样使用它:

Array.prototype.myJoin = function(seperator,start,end){
    if(!start) start = 0;
    if(!end) end = this.length - 1;
    end++;
    return this.slice(start,end).join(seperator);
};

var arr = ["a", "b", "c", "d"];
arr.myJoin("-",2,3)  //c-d
arr.myJoin("-") //a-b-c-d
arr.myJoin("-",1) //b-c-d
于 2012-04-26T23:20:39.337 回答
5

只需将您想要的阵列切片,然后手动加入即可。

var array= ["a", "b", "c", "d"];
var joinedArray = array.slice(1, 3).join("-");

注意:slice()不包括指定的最后一个索引,因此 (1, 3) 等价于 (1, 2)。

于 2012-04-26T23:20:47.897 回答