了解javascript高级语法和对象符号

时间:2019-03-10 02:24:48

标签: javascript arrays algorithm oop boolean

因此,我可以遍历此整洁的辅助函数,并对语法感到困惑。有一个变量(布尔声明为true,似乎是一个数组。它使用方括号对象表示法,但是要比较bool [j]或[i]是否为true,则不添加[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 个答案:

答案 0 :(得分:1)

在JavaScript中,数组是Object的一个实例,它们的类型将这样注册。

类似的语句

foo[i] = 'bar'

将在数组(或对象)i的第foo个从零开始的索引处分配值'bar'。这是在您发布的代码的for循环中发生的。

var a = []

console.log(a instanceof Object)

a[3] = 4

console.log(a)