Получить индекс из индекса - PullRequest
0 голосов
/ 08 мая 2020

Я прохожу онлайн-курс по исправлению кода с помощью бота. Присваивается:

  • Создание переменной a

  • Все значения a имеют тип a

  • a[a[0]] + a[1] === 3

  • a[1] === 10

  • a.length === 3

Пока это мой код:

let a = [0,1,2]
a[a[0]] + a[1] === 30
a[1] = 10
a[0] = 20

a.length === 3

console.log(a, a[a[0]], a[a[0]] + a[1])

Вывод от бота:

file.js
    ✓ exists
    ✓ is valid JavaScript
    ✓ defines a of the type Array
    ✓ defines a such that a.length evaluates to 3
    1) defines a such that a[a[0]] + a[1] === 30 evaluates to true
    ✓ defines a such that a[1] === 10 evaluates to true

Что мне не хватает? Как мне сделать так, чтобы a[a[0]] + a[1] === 30 оценивалось как истинное?

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

хорошо, так что начните с того, что вы знаете: a[1] === 10 и a.length = 3. что оставляет вам следующее:

[x, 10, y]

теперь ваш a[0] = x, поэтому для a[a[0]] + a[1] = 30 вы можете сказать a[x] + a[1] = 30. в вашем массиве осталось только третье место (индекс 2). таким образом, вы знаете, что x = a[0] = 2 (потому что a[2] = y)

[2, 10, y]

теперь, чтобы вычислить, вы просто решаете для него

a[a[0]] + a[1] = 30
a[x] + a[1] = 30
a[2] + a[1] = 30
a[2] + 10 = 30
a[2] = 20

так

[2, 10, 20]

const a = [2, 10, 20];

console.log(`a[1] = ${a[1]}`);

console.log(`a[a[0]] + a[1] = ${a[a[0]] + a[1]}`);

console.log(`a[2] = ${a[2]}`);

console.log(`a.length = ${a.length}`);
0 голосов
/ 08 мая 2020

Поскольку a[1] равно 10, вам потребуется a[a[0]] + 10 === 30 или a[a[0]] === 20. Поместите в [0] единственный другой доступный индекс ([2]), чтобы доступ к этому индексу массива давал 20:

const a = [2, 10, 20];
console.log(
  a.length,
  a[a[0]] + a[1],
  a[1]
);
// Simplifying:
a[a[0]] + a[1]
a[a[0]] + 10
a[2] + 10
20 + 10
30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...