Javascript Object.values
我有一个有年份和价值的物体Javascript Object.values,object,Object,我有一个有年份和价值的物体 const years = {}; rows.forEach(row => { const cols = row.split(';'); years[cols[0]] += cols[3]; }); 这部分很好用 我想取消这些价值观。我试过这个: Object.values(years), 但它不起作用。可能值设置不正确。基本上,您需要一个对象 years = {} 然后,使用默认值表示未初始化的值,并使用数字值表示相加 years[cols[0]
const years = {};
rows.forEach(row => {
const cols = row.split(';');
years[cols[0]] += cols[3];
});
这部分很好用
我想取消这些价值观。我试过这个:
Object.values(years),
但它不起作用。可能值设置不正确。基本上,您需要一个对象
years = {}
然后,使用默认值表示未初始化的值,并使用数字值表示相加
years[cols[0]] = (years[cols[0]] || 0) + +cols[3];
常数
数据='xyz\n2006;7.1.20;0\n2006;8.1.40;2007年1月;1.1.30;0\n2007;6.1.60;0',
年={},
行=数据。拆分'\n'。切片1//这是一个简单的csv文本文件
rows.forEachrow=>{
const cols=行。拆分“;”;
年[cols[0]]=年[cols[0]| | 0++cols[3];
};
console.logObject.keysyears;
console.logObject.valuesyears 基本上你需要一个物体
years = {}
然后,使用默认值表示未初始化的值,并使用数字值表示相加
years[cols[0]] = (years[cols[0]] || 0) + +cols[3];
常数
数据='xyz\n2006;7.1.20;0\n2006;8.1.40;2007年1月;1.1.30;0\n2007;6.1.60;0',
年={},
行=数据。拆分'\n'。切片1//这是一个简单的csv文本文件
rows.forEachrow=>{
const cols=行。拆分“;”;
年[cols[0]]=年[cols[0]| | 0++cols[3];
};
console.logObject.keysyears;
console.logObject.valuesyears 当你这样做的时候
years[cols[0]] += cols[3];
如果年[cols[0]]以前未初始化,则该值将未定义。如果将数字添加到未定义,则该数字将为NaN
初始化如下:
if (!years[cols[0]]) years[cols[0]] = 0;
当你这样做的时候
years[cols[0]] += cols[3];
如果年[cols[0]]以前未初始化,则该值将未定义。如果将数字添加到未定义,则该数字将为NaN
初始化如下:
if (!years[cols[0]]) years[cols[0]] = 0;
请添加一个数据示例和想要的结果。那么,您得到了什么?顺便说一句,误用数组而不是对象,元素没有初始值。仅添加一个值就返回undefined2,其中undefined是项的值,数字是拆分行的字符串。您需要年={}和以后的年[cols[0]+=years[cols[0]]| | 0++cols[3];你可能想将年份初始化为对象,而不是数组…?你能在forEach循环后执行console.logyears并添加结果吗?请添加一个数据示例和想要的结果。那么,你得到了什么?顺便说一句,滥用数组而不是对象,元素没有init值。仅添加一个值就返回undefined2,其中undefined是项的值,数字是拆分行的字符串。您需要年={}和以后的年[cols[0]+=years[cols[0]]| | 0++cols[3];你可能想初始化年份作为一个对象,而不是数组…?你能在forEach循环后做一个console.logyears并添加结果吗?是的,我错过了对象初始化器。它返回2007:NaN我如何解决它?你需要=而不是+=。是的,我错过了对象初始化器。它返回2007:NaN如何解决它?您需要=而不是+=。