Javascript 将嵌套对象的每个对象的索引设置为属性

Javascript 将嵌套对象的每个对象的索引设置为属性,javascript,object,nested,Javascript,Object,Nested,早上好 有人知道如何将嵌套对象的每个对象的索引插入到属性中吗 大概是这样的: const myObj = { "@type": "someType", A: [ { "@type": "someType0", order: "DESC", myIndex: 0 }, { "@type": "someType1", order: "DESC", myIndex: 1 }, {

早上好

有人知道如何将嵌套对象的每个对象的索引插入到属性中吗

大概是这样的:

const myObj = 
{
  "@type": "someType",
  A: [
    {
      "@type": "someType0",
      order: "DESC",
      myIndex: 0
    },
    {
      "@type": "someType1",
      order: "DESC",
      myIndex: 1
    },
    {
      "@type": "someType2",
      order: "DESC",
      myIndex: 2
    }
  ],
  B: [],
};

可以使用.map函数更改数组中的对象

const myObj=
{
“@type”:“someType”,
A:[
{
“@type”:“someType0”,
命令:“描述”
},
{
“@type”:“someType1”,
命令:“描述”
},
{
“@type”:“someType2”,
命令:“描述”
}
],
B:[],
};
const newA=myObj.A.map((项目,索引)=>{
item.myIndex=索引;
退货项目;
})

console.log(newA)
您可以迭代数组并将
i
(当前迭代索引)分配给对象属性,如
myObj.A.forEach((d,i)=>d.myIndex=i),其中
d
-为当前项,
i
-为当前索引

const myObj=
{
“@type”:“someType”,
A:[
{
“@type”:“someType0”,
命令:“描述”
},
{
“@type”:“someType1”,
命令:“描述”
},
{
“@type”:“someType2”,
命令:“描述”
}
],
B:[],
};
myObj.A.forEach((d,i)=>d.myIndex=i);

console.log(myObj)您可以使用递归方法为所有数组添加索引

函数集合索引(对象){
Object.values(Object.forEach)(v=>{
if(数组isArray(v)){
v、 forEach((o,i)=>{
o、 指数=i;
setIndex(o);
});
}
});
}
const object={“@type”:“someType”,A:[{“@type”:“someType0”,顺序:“DESC”},{“@type”:“someType1”,顺序:“DESC”},{“@type”:“someType2”,顺序:“DESC”}],B:[];
setIndex(object);
console.log(对象)

作为控制台包装{max height:100%!important;top:0;}
您可以使用
对象.键
对象.值
数组.forEach
的组合来实现此目的。使用您的“myObject”变量作为起点,类似这样的

使用
对象键

/* loop through keys of 'myObject' */
Object.keys(myObject).forEach(function(key) {
    /* check that 'myObject[key] is an Array &&
       loop through items in each 'myObject[key]'
       to add unique 'myIndex' property */
    Array.isArray(myObject[key]) && myObject[key].forEach(function(obj, idx) {
        obj.myIndex = idx;
    });
});
/* loop through 'myObject' property values */
Object.values(myObject).forEach(function(val) {
    /* check 'val' is an Array &&
       loop through each item in 'val' 
       to add unique 'myIndex' property */
    Array.isArray(val) && val.forEach(function(obj, idx) {
        obj.myIndex = idx;
    });
});
使用
对象值

/* loop through keys of 'myObject' */
Object.keys(myObject).forEach(function(key) {
    /* check that 'myObject[key] is an Array &&
       loop through items in each 'myObject[key]'
       to add unique 'myIndex' property */
    Array.isArray(myObject[key]) && myObject[key].forEach(function(obj, idx) {
        obj.myIndex = idx;
    });
});
/* loop through 'myObject' property values */
Object.values(myObject).forEach(function(val) {
    /* check 'val' is an Array &&
       loop through each item in 'val' 
       to add unique 'myIndex' property */
    Array.isArray(val) && val.forEach(function(obj, idx) {
        obj.myIndex = idx;
    });
});
希望有帮助-D


您想插入
myIndex
对吗?谢谢大家!感谢所有的帮助@别忘了投票,接受最能回答你问题的答案。我们喜欢它们:如果你改变了对象,那么DWhy映射到底是什么呢?尼娜,你有博客吗?你的回答总是非常简洁,经过深思熟虑。以至于我会不厌其烦地仔细检查它们,即使是我已经回答过的问题。