Присоединиться к массиву от startIndex до endIndex

Я хотел спросить, есть ли какая-то служебная функция, которая предлагает такие работы, а также индекс. Возможно, прототип jQuery предоставляет это, если нет, я напишу его самостоятельно:)

что я ожидаю что-то вроде

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

Так что массив.join ( " - ", 1, 2) вернет"b-c"

есть ли такая функция утилиты в довольно распространенной библиотеке Javascript?

С уважением Wormi

2 ответов


Он работает уроженца

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

просто срежьте массив, который вы хотите, а затем присоединитесь к нему вручную.

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

Примечание: slice() не включает последний указанный индекс, поэтому (1, 3) эквивалентно (1, 2).