在javascript中创建对象内部的数组

在javascript中创建对象内部的数组,javascript,jquery,json,Javascript,Jquery,Json,我想创建一个如下代码所示的对象数组 myobj=[{ 名称:“abc”, “代码”:“aa”, “isdefault”:1 }, { 名称:“abc”, “代码”:“bb”, “isdefault”:0 }, { 名称:“bcd”, “代码”:“ac”, “isdefault”:0 }] var codeids={}; $.each(myobj,函数(key,val){ console.log(val);//=>{name:“abc”,“code”:4,“isdefault”:1} 代码ID[

我想创建一个如下代码所示的对象数组

myobj=[{
名称:“abc”,
“代码”:“aa”,
“isdefault”:1
}, {
名称:“abc”,
“代码”:“bb”,
“isdefault”:0
}, {
名称:“bcd”,
“代码”:“ac”,
“isdefault”:0
}]
var codeids={};
$.each(myobj,函数(key,val){
console.log(val);//=>{name:“abc”,“code”:4,“isdefault”:1}
代码ID[val.name]={
[val.code]:val.isdefault
};//我希望codeID['abc']应该==>[{“aa”:1},{“ab”:0}…]
});
console.log(代码ID)

您需要推送到数组上,而不仅仅是直接分配给属性

myobj=[{
名称:“abc”,
“代码”:“aa”,
“isdefault”:1
}, {
名称:“abc”,
“代码”:“bb”,
“isdefault”:0
}, {
名称:“bcd”,
“代码”:“ac”,
“isdefault”:0
}]
var codeids={};
$.each(myobj,函数(key,val){
如果(!codeids[val.name]){
//初始化空数组
代码ID[val.name]=[];
}
代码ID[val.name].push({
[val.code]:val.isdefault
});
});
console.log(codeids)

您可以从对象中获取值,并检查数组是否存在属性

这种方法在不使用jquery的情况下工作

const
数组=[{name:“abc”,code:“aa”,isdefault:1},{name:“abc”,code:“bb”,isdefault:0},{name:“bcd”,code:“ac”,isdefault:0}],
codeids={};
array.forEach({name,code,isdefault})=>{
如果(!codeids[name])codeids[name]=[];
CodeId[name].push({[code]:isdefault});
});
console.log(codeids)

。作为控制台包装器{max height:100%!important;top:0;}
您可以使用简单的JS forEach循环来完成此操作,无需Jquery:

myobj=[{
名称:“abc”,
“代码”:“aa”,
“isdefault”:1
}, {
名称:“abc”,
“代码”:“bb”,
“isdefault”:0
}, {
名称:“bcd”,
“代码”:“ac”,
“isdefault”:0
}]
var codeids={};
myobj.forEach({name,code,isdefault})=>{
如果(!codeids[name])codeids[name]=[];
CodeId[name].push({[code]:isdefault});
})

console.log(codeids)
如果我理解正确,应该这样做:

myobj=[
{名称:“abc”,“代码”:“aa”,“isdefault”:1},
{名称:“abc”,“代码”:“bb”,“isdefault”:0},
{名称:“bcd”,“代码”:“ac”,“isdefault”:0}
];
var codeids={};
myobj.forEach((val)=>{
如果(!codeids.hasOwnProperty(val.name)){
代码ID[val.name]=[];
}
const newItem={};
newItem[val.code]=val.isdefault;
codeID[val.name].push(newItem);
});
console.log(codeids)您也可以使用方法来完成

让myobj=[{
名称:“abc”,
“代码”:“aa”,
“isdefault”:1
}, {
名称:“abc”,
“代码”:“bb”,
“isdefault”:0
}, {
名称:“bcd”,
“代码”:“ac”,
“isdefault”:0
}]
设y=myobj.reduce((acc,obj)=>{
如果(!附件[对象名称]){
会计科目[对象名称]=[]
}
acc[obj.name]。推送({
[obj.代码]:obj.isdefault
})
返回acc
}, {})
console.log(y)