【发布时间】:2019-03-13 04:24:35
【问题描述】:
假设我正在定义一个这样的 JavaScript 变量:
var sheetsToWorkWith =
(
allSheets.length > 0 ?
allSheets
.filter(x =>
x.cssRules && [].slice.call(x.cssRules).filter(y =>
Object.keys(data).includes(y.selectorText)
).length > 0
) :
[]
) ||
(() => {
var style = head.appendChild(document.createElement("style"));
style.type = "text/css";
return style.sheet;
})(),
这个变量赋值 (did/) 所做的基本上是检查现有样式表是否存在,如果不存在,则将其分配给新样式表。我现在想要它做的是将它设置为样式表列表,其中任何一个都包含一个与预定义数组中的元素匹配的 selectorText,但是似乎这样做我需要两个变量:我想设置仅当结果的长度大于 0 时,它才等于第一个值(|| 运算符的右侧/顶部)。
【问题讨论】:
-
||之后的表达式永远不会被计算,因为第一个表达式总是返回一个数组。空数组不是虚假的。
标签: javascript