Javascript 对象不可编辑-NodeJS
我下面的NodeJS程序在我试图打印它们时给了我一个错误,它在Javascript 对象不可编辑-NodeJS,javascript,node.js,Javascript,Node.js,我下面的NodeJS程序在我试图打印它们时给了我一个错误,它在dataGood处停止,因为它不可编辑 JSON 剧本 错误 客观的 我想将JSON中的“name”和“user”放入这两个数组中,并用逗号将它们分开 //After script runs nameGood = ['something','cool'] userGood = ['Awesome','Great'] 或 要迭代对象,必须使用循环 解决方案 谢谢大家的帮助 为什么要迭代对象?你期望发生什么?注意两者之间的区别,然后
dataGood
处停止,因为它不可编辑
JSON
剧本
错误
客观的
我想将JSON中的“name”和“user”放入这两个数组中,并用逗号将它们分开
//After script runs
nameGood = ['something','cool']
userGood = ['Awesome','Great']
或
要迭代对象,必须使用循环 解决方案
谢谢大家的帮助 为什么要迭代对象?你期望发生什么?注意两者之间的区别,然后我该怎么做?“然后我该怎么做?”不清楚你想要实现什么。数据显示具有
名称
和用户
属性的单个对象。您似乎正在访问循环中的两个属性(element.name
,element.user
)。看来没有什么需要迭代的了?没有对象数组,并且您似乎不希望逐个迭代每个属性。为什么会有这样的循环?所以需要让nameGood=dataGood.name.split(',');让userGood=dataGood.user.split(',')代码>。不需要循环。谢谢,但是如果名称和用户不是数组类型,我将无法使用toString()或split()函数。您的JSON显示它们是字符串<代码>{“name”:“something,cool”,“user”:“Awesome,Great”}
如果包含一个简短的解释,说明您的答案为什么有效,会更好。让nameGood=dataGood.name.split(',');让userGood=dataGood.user.split(',')代码>会简单得多。不需要循环。
if(fs.existsSync('./data/data.json')){
let data = fs.readFileSync('./data/data.json');
let dataGood = JSON.parse(data);
let nameGood = [];
let userGood = [];
for(const element of dataGood){
let name = [] = element.name;
let user = [] = element.user;
let nameSplit = name.toString().split(',')
let userSplit = user.toString().split(',');
nameGood = nameSplit;
userGood = userSplit;
}
console.log(nameGood, userGood)
}
TypeError: dataGood is not iterable
//After script runs
nameGood = ['something','cool']
userGood = ['Awesome','Great']
for(const [key, value] of Object.entries(dataGood)){
...
}
for(const element of Object.keys(dataGood)){
...
}
for(const element in dataGood){
let name = element.name;
let user = element.user;
nameGood.concat(name.split(','));
userGood.concat(user.split(','));
}
let data = fs.readFileSync('./data/data.json');
let dataGood = JSON.parse(data);
let nameGood = [];
let userGood = [];
for (const [key,value] of Object.entries(dataGood)) {
if(key == "name"){
let name = [] = value;
let nameSplit = name.toString().split(',')
nameGood = nameSplit;
}
if(key == "user")
let user = [] = value;
let userSplit = user.toString().split(',')
userGood = userSplit;
}
}
console.log(nameGood, userGood)
}