Javascript 如何在数组数组中合并数组的字符串属性并在每个数组中创建新属性
我有一个数组,如下所示:Javascript 如何在数组数组中合并数组的字符串属性并在每个数组中创建新属性,javascript,jquery,arrays,reactjs,javascript-objects,Javascript,Jquery,Arrays,Reactjs,Javascript Objects,我有一个数组,如下所示: UserList=[ [name:"user1", type:"admin", location:"NY", expired:"NO"], [name:"user2", type:"poweruser", location:"CO", expired:"NO"], [name:"user3", type:"admin", location:"SF", expired:"NO"], ] 我想添加三个属性名称、类型和位置,并在每个单独的数组中创建一个新属性,如下面示例中的
UserList=[
[name:"user1", type:"admin", location:"NY", expired:"NO"],
[name:"user2", type:"poweruser", location:"CO", expired:"NO"],
[name:"user3", type:"admin", location:"SF", expired:"NO"],
]
我想添加三个属性名称、类型和位置,并在每个单独的数组中创建一个新属性,如下面示例中的属性“AllProps”:
期望输出:
UserList=[
[name:"user1", type:"admin", location:"NY", expired:"NO",AllProps:"user1adminNY"],
[name:"user2", type:"poweruser", location:"CO", expired:"NO",AllProps:"user1poweruserCO"],
[name:"user3", type:"admin", location:"SF", expired:"NO", AllProps:"user1adminSF"],
]
我能用Loadash做这个吗?执行此操作的最佳和最快方法是什么?您使用的是
{}
,但对于数组来说应该是[]
。您还需要在对象中使用:
而不是=
var用户列表=[
{名称:“user1”,类型:“admin”,位置:“NY”,过期:“NO”},
{name:“user2”,type:“poweruser”,location:“CO”,expired:“NO”},
{名称:“user3”,类型:“admin”,位置:“SF”,过期:“NO”}
];
var输出=userList.map(用户=>{
user.AllProps=user.name+user.type+user.location;
返回用户;
});
//速记
var output=userList.map(user=>({…user,AllProps:user.name+user.type+user.location}));
log('output:',output)代码>您使用的是{}
,但数组应该是[]
。您还需要在对象中使用:
而不是=
var用户列表=[
{名称:“user1”,类型:“admin”,位置:“NY”,过期:“NO”},
{name:“user2”,type:“poweruser”,location:“CO”,expired:“NO”},
{名称:“user3”,类型:“admin”,位置:“SF”,过期:“NO”}
];
var输出=userList.map(用户=>{
user.AllProps=user.name+user.type+user.location;
返回用户;
});
//速记
var output=userList.map(user=>({…user,AllProps:user.name+user.type+user.location}));
log('output:',output)代码>我认为您需要这样的东西:
_.forEach(UserList, function(u){
var allPropValues = "";
_.forOwn(u, function(value, key) {
if(key !== 'expired') {
allPropValues += value;
}
});
u.AllProps = allPropValues;
});
var用户列表=[
{名称:“user1”,类型:“admin”,位置:“NY”,过期:“NO”},
{name:“user2”,type:“poweruser”,location:“CO”,expired:“NO”},
{名称:“user3”,类型:“admin”,位置:“SF”,过期:“NO”},
];
log({before:UserList});
_.forEach(用户列表,函数(u){
var allpropvalue=“”;
_.forOwn(u,函数(值,键){
如果(键!==“过期”){
allPropValues+=值;
}
});
u、 AllProps=allPropValues;
});
log({after:UserList})代码>
我认为您需要这样的东西:
_.forEach(UserList, function(u){
var allPropValues = "";
_.forOwn(u, function(value, key) {
if(key !== 'expired') {
allPropValues += value;
}
});
u.AllProps = allPropValues;
});
var用户列表=[
{名称:“user1”,类型:“admin”,位置:“NY”,过期:“NO”},
{name:“user2”,type:“poweruser”,location:“CO”,expired:“NO”},
{名称:“user3”,类型:“admin”,位置:“SF”,过期:“NO”},
];
log({before:UserList});
_.forEach(用户列表,函数(u){
var allpropvalue=“”;
_.forOwn(u,函数(值,键){
如果(键!==“过期”){
allPropValues+=值;
}
});
u、 AllProps=allPropValues;
});
log({after:UserList})代码>
根据您的要求,如果您只想修改现有数组而不返回新数组,只需迭代该数组并添加键/值对:
var用户列表=[
{名称:“user1”,类型:“admin”,位置:“NY”,过期:“NO”},
{name:“user2”,type:“poweruser”,location:“CO”,expired:“NO”},
{名称:“user3”,类型:“admin”,位置:“SF”,过期:“NO”},
];
forEach(函数(x){
x[“AllProps”]=x.name+x.type+x.location;
});
log(UserList)代码>根据您的要求,如果只想修改现有数组而不返回新数组,只需迭代该数组并添加键/值对:
var用户列表=[
{名称:“user1”,类型:“admin”,位置:“NY”,过期:“NO”},
{name:“user2”,type:“poweruser”,location:“CO”,expired:“NO”},
{名称:“user3”,类型:“admin”,位置:“SF”,过期:“NO”},
];
forEach(函数(x){
x[“AllProps”]=x.name+x.type+x.location;
});
log(UserList)代码>