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映射到底是什么呢?尼娜,你有博客吗?你的回答总是非常简洁,经过深思熟虑。以至于我会不厌其烦地仔细检查它们,即使是我已经回答过的问题。