因此,我可以遍历此整洁的辅助函数,并对语法感到困惑。有一个变量(布尔声明为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']);
答案 0 :(得分:1)
在JavaScript中,数组是Object的一个实例,它们的类型将这样注册。
类似的语句
foo[i] = 'bar'
将在数组(或对象)i
的第foo
个从零开始的索引处分配值'bar'。这是在您发布的代码的for
循环中发生的。
var a = []
console.log(a instanceof Object)
a[3] = 4
console.log(a)