[英]Cannot create property on string
在尝试使用以下代码在空对象上递归设置属性时,我偶然发现了一个奇怪的问题:
简化代码
const birthdays = {};
// Loop -> Passing day, id and birthday
birthdays[day] = day;
birthdays[day][id] = birthday;
日期示例: '01012017'
id 示例: 1547
生日示例: {name: John}
错误信息
Cannot create property '123' on string '06012017'
我看到一些使用 Angular 的人有这个问题,但他们的回答并没有为我解决任何问题(角度特定的语法等也是如此)。
在分配它们的值之前,需要单独创建空对象。 在这里使用const
并不是一个好主意,无论如何,这只是我的建议。
const birthdays = {}; var day = 123; var id = 21; var birthday = 2016; // Loop -> Passing day, id and birthday birthdays[day] = {}; birthdays[day][id] = birthday;
我有一个类似的错误消息TypeError: Cannot create property 'false' on boolean 'false'
in Node 14.3.0 (ES 2019)下一行。
导致错误的代码:
var a = b ()
[c, d] = e ()
解决者:
var a = b ()
;
[c, d] = e ()
首先,定义对象:
let birthdays = {};
然后,获取要在该对象中使用的属性:
let day = '20210203';
let id = 77;
然后,创建一对两个属性(请记住方括号,这是 ES6 使用变量作为键的功能):
let pair = {[id]: day};
最后,像这样形成主要对象:
birthdays = {...birthdays, ...pair};
瞧,您已向空对象添加了 kvp,并且不会再出现“无法在字符串 '20210203' 上创建属性 '77'”错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.