我正在使用此JavaScript代码将项目添加到包含搜索条件的对象数组中。
如果搜索条件是日期范围的开头,我的目标是使用“T00:00:00”;如果是日期范围的结尾,我的目标是使用“T23:59:59”。
//key = "Created",
//value = "2016-11-23",
//to_from = "from"
collectedValues.push({
key: key,
value: (value +
(to_from === "to") ?
"T23:59:59" : // when searching by date range,
"T00:00:00"), // "from" must be 00:00 and
// "to" must be 23:59
isPartialMatch: false,
toFrom: to_from
});
生成的对象数组对于项目的“value”属性具有错误的值。它应该被连接起来,如下:“2016-11-23T23:59:59”。
相反,它只有“23:59:59”的值。
看起来这与代码格式化和分成多行有关。
当然我可以使用完整的if / else表示法,但为什么这个表示法不起作用?
答案 0 :(得分:1)
只需更改括号的顺序即可。内联IF条件不需要用括号括起来,就像普通的 collectedValues.push({
key: key,
value: value + (to_from === "to" ?
"T23:59:59" : // when searching by date range,
"T00:00:00"), // "from" must be 00:00 and
// "to" must be 23:59
isPartialMatch: false,
toFrom: to_from
});
语法一样。
此代码可以使用:
{{1}}
答案 1 :(得分:1)
我不明白为什么不起作用,但您可以使用join()将数据压缩成字符串
collectedValues = [];
key = "Created",
value = "2016-11-23",
to_from = "from"
collectedValues.push({
key: key,
value: [value,
(to_from === "to") ?
"T23:59:59" :
"T00:00:00"].join(""),
isPartialMatch: false,
toFrom: to_from
});