javascript - 有条件地传递键值对不起作用
问题描述
我有和反对我想有条件地传递键值对的地方。由于我不知道的原因,条件没有被触发。在我的对象中。知道为什么吗?我认为问题出在对象结构中?
const src = "test";
const traffic_source ="test1";
const utm_campaign = "test2";
const utm_content = "tes3t";
const utm_medium = "test4";
const utm_source = "test5";
const purpose = "Consolidation";
const acknowledgement = 'acknowledgement';
const eligibility = {
// utm values
src,
traffic_source,
utm_campaign,
utm_content,
utm_medium,
utm_source,
...(purpose === 'Consolidation' && acknowledgement),
}
解决方案
右边的&&
需要是...
可以传播到对象中的东西——也就是说,它应该是一个具有acknowledgement
属性的对象,而不是一个字符串:
const src = "test";
const traffic_source ="test1";
const utm_campaign = "test2";
const utm_content = "tes3t";
const utm_medium = "test4";
const utm_source = "test5";
const purpose = "Consolidation";
const acknowledgement = 'acknowledgement';
const eligibility = {
// utm values
src,
traffic_source,
utm_campaign,
utm_content,
utm_medium,
utm_source,
...(purpose === 'Consolidation' && { acknowledgement }),
};
console.log(eligibility);
您现有的代码将字符串传播到对象中,导致eligibility
不仅包含src
,traffic_source
等,还包含
0: 'a',
1: 'c',
2: 'k',
3: 'n',
...
因为这些是字符串的属性。
推荐阅读
- rebus - 处理失效的延迟(超时)消息?
- java - 浓缩咖啡 - 单击嵌套回收站视图中的项目
- javascript - 抛出错误/MODULE_NOT_FOUND
- reactjs - 是否可以在 Heroku / 终端中查看客户端(ReactJS)控制台日志?
- visual-studio-code - VSCode 仅导航回本地到当前文件?
- python - 如何将列表中的元素附加到不满足特定条件的新列表中
- javascript - 如何在anime.js中为一个目标在每个循环上调用一个函数
- regex - 纬度/经度问题的 MapServer 正则表达式验证
- android - 在 mockK 中存根方向配置 Android 资源
- javascript - 查找两个数组之间的匹配项