Javascript JS-Object.keys()中的三元语句
当我将Javascript JS-Object.keys()中的三元语句,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,当我将三元语句或if语句放入Object.keys()中时,如下所示: Object.keys(date).forEach((index) => { dates[date[index].id] !== undefined ? dates[date[index].id] = [...dates[dates[date[index].id], dates[date[index].name] : null;
三元语句
或if语句
放入Object.keys()中时,如下所示:
Object.keys(date).forEach((index) => {
dates[date[index].id] !== undefined ?
dates[date[index].id] =
[...dates[dates[date[index].id], dates[date[index].name]
: null;
});
我从林特那里得到这个错误:
Expected an assignment or function call and instead saw an expression. (no-unused-expressions)
当我使用一个常规的if语句时,我得到了这个错误
Parsing error: Unexpected token (Fatal)
为什么?您可以使用常规if条件,而不使用linter不喜欢的三元表达式
Object.keys(date).forEach((index) => {
if (dates[date[index].id] !== undefined) {
dates[date[index].id] = [
...dates[dates[date[index].id]],
dates[date[index].name]
];
}
});
基本上,十进制与运算符之外的赋值一起使用,如
x = a > 4 ? 7: 8;
而赋值发生在运算符内部。可以使用常规if条件,而不使用linter不喜欢的三元表达式
Object.keys(date).forEach((index) => {
if (dates[date[index].id] !== undefined) {
dates[date[index].id] = [
...dates[dates[date[index].id]],
dates[date[index].name]
];
}
});
基本上,十进制与运算符之外的赋值一起使用,如
x = a > 4 ? 7: 8;
而您的赋值发生在运算符内部。您只是在其中有一些语法错误,可能是由于属性访问嵌套过于复杂所致。保持简单:
for (const index in date) {
const id = date[index].id;
if (dates[id] !== undefined) {
dates[id].push(date[index].name);
// or if you insist:
// dates[id] = [...dates[id], date[index].name];
}
}
这里有一些语法错误,可能是由于属性访问嵌套过于复杂所致。保持简单:
for (const index in date) {
const id = date[index].id;
if (dates[id] !== undefined) {
dates[id].push(date[index].name);
// or if you insist:
// dates[id] = [...dates[id], date[index].name];
}
}
您在中复制了
日期
,作业中缺少了一些括号:
dates[date[index].id] = [...dates[dates[date[index].id], dates[date[index].name]
应该是:
dates[date[index].id] = [..dates[date[index].id], dates[date[index].name]]
演示:
您在中复制了
日期
,作业中缺少了一些括号:
dates[date[index].id] = [...dates[dates[date[index].id], dates[date[index].name]
应该是:
dates[date[index].id] = [..dates[date[index].id], dates[date[index].name]]
演示:
我不仅仅从linter得到一个错误,我还从任何JS解析器得到一个语法错误。很明显,您的括号嵌套错误。“当我使用常规if语句时”-请发布该尝试的代码<代码>日期?即使添加了缺少的<代码>],它也几乎完全难以辨认。因为您使用三元作为if,所以它会大喊大叫。。。。。糟糕的做法。我不仅仅从一个linter得到一个错误,我还从任何JS解析器得到一个语法错误。很明显,您的括号嵌套错误。“当我使用常规if语句时”-请发布该尝试的代码<代码>日期?即使添加了缺少的<代码>],它也几乎完全难以辨认。因为您使用三元作为if,所以它会大喊大叫。。。。。错误的做法。当我使用常规if语句时,解析错误:意外标记(致命)您忘记了右括号。将
dates[date[index].id]=[…dates[date[index].id],dates[date[index].name];
更改为dates[date[index].id]=[…dates[dates[index].id]],dates[date[index].name];
当我使用常规if语句时,分析错误:意外标记(致命)您忘记了右括号。更改dates[date[index].id]=[…日期[dates[date[index].id],日期[date[index].name];
todates[date[index].id]=[…日期[dates[date[index].id]、日期[date[index].name]];
括号不是必需的assignment@guest271314-没错。他缺少了一些括号。我认为他不是缺少括号,而是无意中复制了日期[
。从日期[dates[date…
中删除一次,从日期中删除一次[日期…
@Bergi-确实如此。谢谢。括号不是必需的assignment@guest271314-没错。他缺少了一些括号。我认为他不是缺少括号,而是无意中复制了日期[
。从日期[dates[date…
中删除一次,从日期中删除一次[日期…
@Bergi-确实如此。谢谢。