Функция для возврата логического значения при наличии двух индексов и порядка? - PullRequest
1 голос
/ 10 июля 2020

Как написать обратный вызов функции, который будет возвращать boolean при заказе path совпадений где угодно из source массива

Я пробовал использовать Array.prototype.includes, но не сработало.

Примечание

  1. Массив source всегда будет двухмерным и без большей вложенности.
  2. Пустые значения всегда будут массивом.

const source = [
  ['source', 'nope'],
  ['source', 'id'],
  ['wow', 'source', 'id'],
  ['source', 'nope', 'id'],
  [],
  ['id', 'source'],
  ['id', 'source', 'id']
];


function cb(arr, path) {
  return true;
}

const ans = source.filter(i => cb(i, ['source', 'id']));

console.log(ans) 
// Correct Answer is:
// [['source', 'id'], ['wow', 'source', 'id'], ['id', 'source', 'id']]

1 Ответ

1 голос
/ 10 июля 2020

Я не уверен, охватывает ли это весь сценарий ios (скорее всего, нет, если . является допустимым символом в путях), или даже если это отличное решение, но оно дает ответ в вашем комментарии. Просто преобразует каждый путь в строку, разделенную ., и также ищет данный путь как строку, разделенную ..

const source = [
  ['source', 'nope'],
  ['source', 'id'],
  ['wow', 'source', 'id'],
  ['source', 'nope', 'id'],
  [],
  ['id', 'source'],
  ['id', 'source', 'id']
];


function cb(arr, path) {
  return arr.join('.').includes(path);
}

const ans = source.filter(i => cb(i, ['source', 'id'].join('.')));

console.log(ans) 
// Correct Answer is:
// [['source', 'id'], ['wow', 'source', 'id'], ['id', 'source', 'id']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...