Вопрос по javascript, arrays – Присоединиться к массиву от startIndex до endIndex

8

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

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

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

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

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

Regards Wormi

Ваш Ответ

2   ответа
35

Работает нативно

["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
Определенно, путь. Вместо того, чтобы иметь версии всех методов, которые принимают диапазоны, просто используйте slice для создания массива, содержащего только нужный диапазон. Mark Reed
Да, хорошо .. совсем забыл про функцию среза. Спасибо вам, ребята globalworming
3

затем присоедините его вручную.

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

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

Похожие вопросы