Tur*_*Abu 5 javascript angularjs ecmascript-6
有代码:
function search(list, q){
var result = {};
for(let id in list)(
(!q.id || (id == q.id)) &&
(!q.name || (list[id].name.search(q.name) > -1)) &&
result[id] = list[id]
);
return result;
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Uncaught ReferenceError: Invalid left-hand side in assignment script.js:4
Run Code Online (Sandbox Code Playgroud)
为什么“ &&”是错误的?
问题在于赋值运算符,=是一个低优先级的运算符,因此它以您不期望的方式被解释。如果将最后一个表达式放在括号中,它将起作用:
for(let id in list)(
(!q.id || (id == q.id)) &&
(!q.name || (list[id].name.search(q.name) > -1)) &&
(result[id] = list[id])
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3636 次 |
| 最近记录: |