Доступ к отдельным элементам в многомерных массивах, используя для l oop in Javascript - PullRequest
1 голос
/ 30 апреля 2020

Я пытаюсь проверить, совпадает ли отдельный элемент в массиве массивов с текущей переменной, используя для l oop. Я в порядке с использованием многомерного массива или массива объектов для решения проблемы, как показано ниже:

const compassArray = [

  ["north", "top"],

  ["south", "bottom"],

  ["east", "right"],

  ["west", "left"],

];

const compassArray1 = [
  { direction: "north", message: "top" },

  { direction: "south", message: "bottom" },

  { direction: "east", message: "right" },

  { direction: "west", message: "left" },

];

Однако при доступе к этим отдельным элементам в любом случае легко сделать это внутри для l oop дает мне неопределенный результат.

const rightTurn = () => {

  for (let i = compassArray.length; i >= 0; i--) {

    if (facing === compassArray[i][0]) {

      if (facing !== compassArray[compassArray.length][0]) {

        facing = compassArray[i + 1][0];

      } else {

        facing = compassArray[0][0];

      }
    }
  }
};

Какой надежный способ проверить, что его "столкновение" равно элементу [0] в compassArray? Другие решения, не включающие в себя для l oop, также приветствуются, как и другие критические замечания по коду.

1 Ответ

0 голосов
/ 30 апреля 2020

Вы можете использовать метод массива find с методом indexOf или includes.

Пример:

const compassArray = [
    ["north", "top"],
    ["south", "bottom"],
    ["east", "right"],
    ["west", "left"],
];

function findValue(str) {
    return compassArray.find(item => item.indexOf(str));
}


console.log(findValue("top"));
...