понимание расширенного синтаксиса JavaScript и нотации объектов - PullRequest
0 голосов
/ 10 марта 2019

Так что я могу пройти через эту аккуратную вспомогательную функцию и запутался в синтаксисе.Существует переменная (bool, объявленная как true, которая выглядит как массив. Она использует обозначение объекта в скобках, но затем будет сравнивать, если bool [j] или [i] истинно, нет ничего, добавляющего [i] или[j] к карте объекта.

const helper = (word, words) => {

    let bool = [true]; 
   //if you console.log(typeof bool) returns object ?? 




    //This comes out as an Obj at first glance I thought it was an arr, but its bracket notation
    for (var i = 1; i <= word.length; i++) {
     
        for (var j = 0; j <= i; j++) {
          //how is bool[j] being evaluated? or i if its an obj? 
            if (bool[j] === true && words[word.substring(j, i)] === true) {
                bool[i] = true;
                break;
            } else {
                bool[i] = false;
            }

        }
    }
    return console.log(bool[word.length] ? true : false);
}


helper('aa', ['aa', 'aabb', 'someotherword']);

1 Ответ

1 голос
/ 10 марта 2019

В JavaScript массивы являются экземпляром Object, и их тип будет регистрироваться таким образом.

Оператор типа

foo[i] = 'bar'

назначит значение 'bar' в i Индекс массива (или объекта), начинающийся с нуля foo.Это происходит в циклах for в коде, который вы разместили.

var a = []

console.log(a instanceof Object)

a[3] = 4

console.log(a)
...