我阅读了这篇文章Use of [square brackets] around JavaScript variables,但是我并没有真正知道为什么要使用它。 这是我想要理解的代码:
let [translations] = await translate.translate(text, target);
translations = Array.isArray(translations) ? translations : [translations];
translations.forEach((translation, i) => {
console.log(`${text[i]} => (${target}) ${translation}`);
您能帮我解释一下为什么第一行中的括号以及为什么第二行中的if语句吗?
答案 0 :(得分:1)
domains.stream()
.filter(domain -> domain.getSoftwares().contains(request.getSoftwares())
&& domain.getHardwares().stream().anyMatch(request.getHardware()))
.collect(Collectors.toList());
函数let [translations] = await translate.translate(text, target);
返回(一个包装好的承诺)数组。以上等同于
translate.translate
现在,第二行:
let translationsArray = await translate.translate(text, target);
let foo = translationsArray[0];
读取:“如果translations = Array.isArray(translations) ? translations : [translations];
已经是一个数组,则不对其进行任何处理,如果不是,则从中创建一个1元素的数组。”因此,此时:translations
保持不变,但是["cat", "dog"]
变成"cat"
。