Как искать подмассив чисел внутри массива чисел - PullRequest
0 голосов
/ 10 октября 2018

у меня проблема в TypeScript (сейчас последняя версия 3.1)

У меня есть массив чисел

let mainArray : Array<number>  = [1,2,3,4];

Я должен найти подмассив [2,3],как я могу это сделать?

Мой реальный обходной путь - это преобразование обоих массивов в строку (toString ()) и использование функции .include (ES6), и это работает, но я думаю, что это не лучшее решение.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Ну, это скорее проблема алгоритма, чем проблема машинописи.Но это решение должно работать для проверки наличия подмассива, который соответствует искомому массиву:

const toTuples = (n) => (item, index, originalArr) => {
	const arr = [];
  for(let i = 0; i < n; i++) {
  	arr.push(originalArr[index + i]);
  }
  return arr;
}

const arr = [1,2,3,4,2,3];

const search = [2, 3];

const mapped = arr.map(toTuples(search.length));

console.log(mapped.some((currArray) => currArray.every((item) => search.includes(item))));
0 голосов
/ 10 октября 2018

Вы можете использовать фильтр для этого

      let mainArray : Array<number>  = [1,2,3,4];
      var findArry = [2, 3];
      var subArray =   mainArray.filter(function(val) {
            return findArry.indexOf(val) != -1 ? true : false;
        });
    console.log(subArray);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...