Предыдущие слова
Строки и массивы имеют много сходства. У них много методов и очень похожи; Но у них есть различия. Строки являются неизменными ценностями, поэтому их можно рассматривать как массивы только для чтения. В этой статье сравниваются аналогичные методы строк и массивов
Индексируемый
Ecmascript5 Определяет метод доступа к символам, используя квадратные скобки плюс числовые индексы для доступа к определенным символам в строке
Самым большим преимуществом индексируемых строк является то, что они просты, заменяя вызовы чарата () квадратными скобками, которые более кратко, читаемые и, возможно, более эффективные. Мало того, тот факт, что строки ведут себя как массивы, делает общие методы массива, применимые к строкам
Если параметр выходит из диапазона или NAN, неопределенный выход
var str = "hello"; console.log (str [0]); // hconsole.log (str [[1]]); // econsole.log (str [false]); // undefinedConsole.log (str [-1]); // undefinedConsole.log (nan]);//undefinedconsole.
var arr = ['h', 'e', 'l', 'l', 'o']; console.log (arr [0]); // hconsole.log (arr [[1]]); // econsole.log (arr [false]); // un definedconsole.log (arr [-1]); // undefinedconsole.log (arr [nan]); // undefinedconsole.log (arr []); // Отчет ошибка
Конвертировать
Строки могут быть преобразованы в массивы с использованием метода split (); Массивы могут быть преобразованы в строки с использованием метода join ()
【расколоть()】
Метод Split () делит строку на несколько строк на основе указанного сепаратора и помещает результат в массив. Сепаратор может быть строкой или регулярным выражением
Этот метод может принять (необязательно) второй параметр для указания размера массива. Если второй параметр является значением в диапазоне 0-array.
Если указанный разделитель не отображается в строке, значение исходной строки возвращается как массив.
var colorText = 'red,blue,green,yellow';console.log(colorText.split(''));//["r", "e", "d", ",", "b", "l", "u", "e", "e", "e", ",", "g", "r", "e", "e", "e", "e", "n", ",", «y», «e», «l», «l», «l», «o», «w»] console.log (colortext.split (',')); // ["red", "blue", "green", "желтый"] console.log (colortext.split (',', 2)); "Blue"] console.log (colortext.split (',', 6)); // ["red", "blue", "green", "hello"] console.log (colortext.split ('-')); // ["красный, синий, зеленый, желтый"] консоль. «желтый»] console.log (colortext.split (/e/)); // ["r", "d, blue", ", gr", "", "n, y", "llow"] console.log (colortext.split (/[^/,]+/)); // Изменение строков, кроме коммунальных, в отдельные IE8- признает как [«», «», «», «», «]【присоединиться()】
Метод join () может использовать разные разделители для создания этой строки. Метод join () получает только один параметр, который используется в качестве разделителя, а затем возвращает строку, содержащую все элементы массива.
Если значение не передается в метод join (), используйте запятую в качестве разделителя
var a = [1,2,3]; console.log (a.join ()); // '1,2,3' -console.log (a.join (' ')); //' 1 2 3'console.log (a.join ('')); // '123'var b = новый Array(10);b.join('-');//'----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Если значение элемента в массиве является нулевым или неопределенным, значение представлено в виде пустой строки в результате, возвращаемого методом join ()
var colors = [1, undefined, 2, null, 3]; console.log (colors.join ()); // '1 ,, 2,, 3'
Поскольку строки являются объектами массива, вы также можете использовать метод join ()
console.log (array.prototype.join.call ('hello', '-')); // "Привет" var str = 'test'; var arr = str.split ('') // ["t", "e", "s", "t"] console.log (arr.join ('-')); // 'tes-t'Сплайсинг
Строки и массивы делятся методом сплайсинга concat ()
var value = 'hello'; console.log (value.concat ('world')); // 'helloworld'console.log (value.concat ([' world '])); //' helloworld'console.log (value.concat (['world']]); // 'helloworld' var value = ['hello'];; console.log (value.concat ('world')); // ["hello", "world"] console.log (value.concat (['world'])); // ["hello", "world"] console.log (value.concat (['world']); // [hello "," ["world"] console.log (value.concat ([['world']])); // ["hello", ["world"]]]]]создавать
Как строки, так и массивы имеют Slice () метод создания (), который используется для создания подстроков и подборов соответственно.
Метод slice () создает новый массив (или строку), основанный на одном или нескольких элементах в текущем массиве (или строке), принимает один или два параметра, то есть возвращать начальные и конечные позиции элемента и, наконец, вернуть новый массив (или строка)
Метод Slice (Start, End) требует двух параметров запуска и конца, что возвращает Subarray (или String) из начальной позиции в (но не содержит) конечного положения в этом массиве (или строке). Если конец не определен или не существует, он возвращает все элементы с начальной позиции в конце массива (или строки).
Если старт - отрицательное число, start = max (длина + старт, 0)
Если конец - отрицательное число, end = max (длина + конец, 0)
Начало и конец не может поменять позиции
var numbers = [1,2,3,4,5]; console.log (number.slice (2)); // [3,4,5] console.log (number.slice (2, не определен)); // [3,4,5] Консол e.log (number.slice (2,3)); // [3] console.log (number.slice (2,1)); // [] console.log (number.slice (-3)); //-3+5 = 2 -> [3,4,5] console.log (numbers.slice (-8)); // max (5 + -8,0) = 0 -> [1,2,3,4,5] Console.log (number.slice (0, -3)); // -3 + 5 = 2 -> [1,2] console.log (number.slice (-2, -1)); //-2+5 = 3; -1+5 = 4; -> [4]
var stringValue = 'hello world'; console.log (stringvalue.slice ()); // 'hello world'console.log (stringvalue.slice (2)); //' llo world'console.log (stringvalue.slice (20)); // '' console.log (stringvalue.slice (2, undfined); World'console.log (stringvalue.slice (2, -5)); // 'llo' console.log (stringvalue.slice (2, -20)); // '' console.log (stringvalue.slice (-2,2); // '' console.log (stringvalue.slice (-2, -20); console.log (stringvalue.slice (-2,20)); // 'ld'console.log (stringvalue.slice (-20,2)); //' he'console.log (stringvalue.slice (-20, -2)); // 'hello wor'
Расположение
Обе строки и массивы имеют два метода для поиска позиций: indexof () и lastindexof (). Метод положения является именно противоположностью метода чтения кронштейнов []. Один из них - найти индекс через элемент, а другой - найти элемент через индекс.
【Indexof ()】
Метод Indexof (Search, Start) получает два параметра поиска и запуска, возвращая местоположение, в котором появляется поиск, и, если он не найден, он возвращает -1
Параметр поиска в строке будет вызвать функцию преобразования string () для преобразования не строкового значения параметра в строку; В то время как параметр поиска в массиве будет сравниваться с использованием оператора строгого равенства (===)
Будь то массив или строка, второй запуск параметра будет косвенно вызовом функции преобразования number (), преобразовывая начало немерного значения (кроме неопределенного) в числовые значения; Если этот параметр игнорируется или параметр не определен или NAN, start = 0
Если параметр начала является отрицательным числом, обработка строки должна запустить = 0; В то время как обработка массива должна запустить = max (0, start+длина)
var string = 'hello world world '; console.log (string.indexof (' ld ')); // 9console.log (string.indexof (' ld ', undefined)); // 9console.log (string.indexof (' ld ', nan)); // 9console.log (string.indexof (' ld ',-1)); Ring.indexof ('ld',-1)); // 9console.log (string.indexof ('ld',-1)); // 9console.log (string.indexof ( 'ld',-1)); // 9console.log (string.indexof ('ld',-1)); // 9console.log (string.indexof ('ld',-1)); // 9 console.log (string.indexof ('ld', 10)); // 15console.log (string.indexof ('ld', [10])); // 15console.log (string.index Of ('true', [10])); //-1console.log (string.indexof (false, [10])); //-1console.log (string.indexof (false, [10])); //-1 var arr = ['a', 'b', 'c', 'd', 'e', 'a', 'b']; console.log (arr.indexof ('a', undefined)); // 0console.log (arr.indexof ('a', nan)); // 0consol e.log (arr.indexof ('a', 1)); // 5console.log (arr.indexof ('a', true)); // 5console.log (arr.indexof ('a',-1)); // max (0, -1+7) = 6; -1console.log (arr.indexof ('a',-5)); // max (0, -5+7) = 2; 5console.log (arr.indexof ('a',-50)); // max (0, -50+7) = 0; 0【LastIndexof ()】
В отличие от метода indexof (), метод LastinDexof () состоит в том, чтобы посмотреть справа налево.
Метод lastindexof (Search, Start) получает два параметра поиска и запуска, возвращая местоположение, где появляется сначала SearchString, и, если оно не найдено, он возвращает -1
Аналогичным образом, параметр поиска в строке вызывает функцию преобразования string () для преобразования не String значения параметра в строку; В то время как параметр поиска в массиве сравнивается с использованием оператора строгого равенства (===)
Независимо от того, является ли это массивом или строкой, второй запуск параметра косвенно вызовет функцию преобразования number (), преобразуя начальные ненуковые значения (кроме неопределенных) в числовые значения.
Если этот параметр игнорируется или параметр не определен или NAN, обработка строки равен start = длина - 1; В то время как обработка массива start = 0
Если параметр начала является отрицательным числом, обработка строки должна запустить = 0; В то время как обработка массива должна запустить = max (0, start+длина)
var string = 'hello world World '; console.log (string.lastindexof (' ld ')); // 15console.log (string.lastindexof (' ld ', не определен)); // 15 console.log (Strin g.lastIndexof ('ld', nan)); // 15console.log (string.lastIndexof ('ld',-1)); //-1console.log (string.lastIndexof ('h',-1)); // 0c onsole.log (string.lastindexof ('w', undefined)); // 12 console.log (string.lastindexof ('ld', 10)); // 9console.log (string.last IndexOF ('ld', [10])); // 9console.log (string.lastindexof ('ld', [10])); //-1-anconsole.log (string.lastindexof (false, [10])); //-1 var arr = [1,2,3, '1', '2', '3']; console.log (arr.lastindexof ('2')); // 4console.log (arr.lastindexof (3)); // 2-anconsole.log (arr.lastindexof (0)); //-1var. ['a', 'b', 'c', 'd', 'e', 'a', 'b']; console.log (arr.lastindexof ('b')); // 6console.log (arr.lastindexof ('b', не определен)); //-1console.log (arr.lastidexof ('', ', u ndefined)); // 0console.log (arr.lastIndexof ('b', nan)); //-1-anconsole.log (arr.lastIndexof ('b', 1)); // 1-nosole.log (arr.lastIndexof ('b',-1)); // max (-1+7) = 6; 6console.log (arr.lastindexof ('b',-5)); // max (0, -5+7) = 2; 1console.log (arr.lastindexof ('b',-50)); // max (0, -50+7) = 0; -1Приведенное выше сравнение массивов и методов струн в JavaScript - это весь контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.