Поиск подходящей строки из массива javascript

Это помогает, если вы посмотрите на него в двоичном формате.

Прежде всего, как вы знаете, отрицательные числа выражаются как (максимально возможное беззнаковое число плюс 1 минус значение). Таким образом, -1 в 16-битовом целое, которое имеет наивысшее значение без знака 65535, будет 65536-1 = 65535, то есть 0xffff в шестнадцатеричном формате или 1111 1111 1111 1111 в двоичном формате.

So:

1 в двоичном формате = 0000 0000 0000 0001

НЕ на всех битах приведет к 1111 1111 1111 1110. То, что в десятичной системе, равно 65534. И 65536 минус 65535 равно 1, поэтому это -1.

10
задан Reigel 19 June 2010 в 07:17
поделиться

2 ответа

function find(key, array) {
  // The variable results needs var in this case (without 'var' a global variable is created)
  var results = [];
  for (var i = 0; i < array.length; i++) {
    if (array[i].indexOf(key) == 0) {
      results.push(array[i]);
    }
  }
  return results;
}
10
ответ дан 3 December 2019 в 16:29
поделиться

Используйте indexOf, как посоветовала @Annie. indexOf используется для поиска подстрок внутри заданной строки. Если совпадений нет, возвращается -1, в противном случае возвращается начальный индекс первого совпадения. Если этот индекс равен 0, это означает, что совпадение было в начале.

Еще один способ - использовать регулярные выражения. Используйте символ ^ для поиска с начала строки. Регулярное выражение:

/^he/

будет соответствовать всем строкам, начинающимся с "he", таким как "hello", "hear", "helium" и т.д. Метод test для RegExp возвращает булево значение, показывающее, было ли успешное совпадение или нет. Приведенный выше regex можно проверить как /^he/.test("helix"), который вернет true, в то время как /^he/.test("sheet") не вернет, поскольку "he" не появляется в начале.

Пройдитесь по каждой строке во входном массиве и соберите все совпадающие строки (используя либо indexOf, либо regex) в новый массив. Этот новый массив должен содержать то, что вы хотите.

15
ответ дан 3 December 2019 в 16:29
поделиться
Другие вопросы по тегам:

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