Javascript 如何在空数组中添加字段?

Javascript 如何在空数组中添加字段?,javascript,Javascript,大家早上好 我必须使用用户数组创建一个新的JSON对象数组,但当我这样做时,会出现以下错误。 有人能帮我吗?或者帮我理解错误 var用户=[{姓名:约翰,年龄:30岁,汽车:菲亚特},{姓名:拉吉,年龄:28岁,汽车:亨代}]; var allUser=[] 对于var i=0;i

大家早上好

我必须使用用户数组创建一个新的JSON对象数组,但当我这样做时,会出现以下错误。 有人能帮我吗?或者帮我理解错误

var用户=[{姓名:约翰,年龄:30岁,汽车:菲亚特},{姓名:拉吉,年龄:28岁,汽车:亨代}]; var allUser=[] 对于var i=0;i<用户长度;i++{ testi,用户[i] } 控制台。LogalUser 函数testi,用户{ console.logi allUser[i].username=user.name; //allUser[i].userage=user.age; //allUser[i].usercar=user.car; } var用户=[{姓名:约翰,年龄:30岁,汽车:菲亚特},{姓名:拉吉,年龄:28岁,汽车:亨代}]; var allUser=[] 对于var i=0;i<用户长度;i++{ testi,用户[i] } 控制台。LogalUser 函数testi,用户{ 变量数据={} 数据[用户名]=用户[名称]; 数据[用户年龄]=用户[年龄] allUser.pushdata; } 您的测试功能可以通过以下方式修复:

变量用户=[ {姓名:约翰,年龄:30岁,汽车:菲亚特}, {姓名:Raj,年龄:28岁,汽车:hundai}, ]; var allUser=[]; 对于var i=0;i<用户长度;i++{ testi,用户[i]; } console.logallUser; 函数testi,用户{ allUser[i]={};//创建一个新对象并将其分配给`allUser[i]` allUser[i].username=user.name; allUser[i].userage=user.age; allUser[i].usercar=user.car;
} 请检查小提琴以寻求解决方案。 您的alluser数组是空数组,当您试图通过[i]获取值时,例如[0]或[1],它是未定义的。您试图访问未定义值的用户名,因此出现错误。 最好的方法是映射或合成完整的对象,并将其指定为数组索引

allUser[i] = {
username: user.name,
userage: user.age
}
使用map,您可以用以下几行代码替换整个代码

var users = [{ "name":"John", "age":30, "car":"fiat" },{ "name":"Raj", "age":28, "car":"hundai" }];
var allUser = users.map(user => return {
username: user.name,
userage: user.age
});

Map是一个高阶函数,它不会改变原始数组,这意味着在Map之后会得到一个新数组,保持原始用户数组不变。

allUser只有一项。获取allUser[i]使用的是来自用户的索引,因此当i=1时,allUser[1]生成未定义的索引。如何获取所有用户,如[{username:John,userage:30},{username:Raj,userage:28}]选项1-删除选项2+选项2有什么问题?知道吗?没问题。取消对将向allUsers添加项目的行的注释,或者使用.map。我已经向您介绍了两个参考资料,它们介绍了如何使用.map来获取对象键的一部分。