将单独的数组深层键转换为所需的类型(数组或对象)
Convert separate array deep keys to required type (array or object)
如何仅将"items"(对象类型)键转换为数组类型:
var arr = [{
"title": "Custom title",
"id": "id1",
"icon": "fa fa-reorder",
"other": {
"3991": {
"title": "Some title",
"link": "#",
"icon": "",
"items": {
"3992": {
"title": "Some title",
"link": "#",
"icon": ""
}
}
},
"3993": {
"title": "Some title",
"link": "#",
"icon": ""
}
}
}];
收件人:
var arr = [{
"title": "Custom title",
"id": "id1",
"icon": "fa fa-reorder",
"other": {
"3991": {
"title": "Some title",
"link": "#",
"icon": "",
"items": [{
"title": "Some title",
"link": "#",
"icon": ""
}]
},
"3993": {
"title": "Some title",
"link": "#",
"icon": ""
}
}
}];
我需要每次单独选择对什么类型的更改指定键。我已经搜索了一些阵列步行者,但没有成功。
示例:
var newArr = change_key_type({
'arr' : arr,
'key' : 'items',
'type' : 'array'
});
您可以迭代并为所有items
构建一个新数组。
function walk(a) {
typeof a === 'object' && Object.keys(a).forEach(function (k) {
if (k === 'items' && typeof a.items === 'object') {
a.items = Object.keys(a.items).map(function (k) {
walk(a.items[k]);
return a.items[k];
});
return;
}
walk(a[k]);
});
}
var arr = [{ "title": "Custom title", "id": "id1", "icon": "fa fa-reorder", "other": { "3991": { "title": "Some title", "link": "#", "icon": "", "items": { "3992": { "title": "Some title", "link": "#", "icon": "" } } }, "3993": { "title": "Some title", "link": "#", "icon": "" } } }];
arr.forEach(walk);
document.write('<pre>' + JSON.stringify(arr, 0, 4) + '</pre>');
相关文章:
- 将单独的数组深层键转换为所需的类型(数组或对象)
- 查找数组javascript中包含的元素类型
- 只能存储一种类型的对象的数组
- 将大数组(字符串和类型数组的混合物)存储到blob或文件中/从blob或文件检索大数组的最佳方式
- 如何使用数组减少来求和对象属性长度,不带类型
- 数组类型字符串导致类型错误的对象
- JavaScript中的数组是什么类型的列表
- 在JavaScript中调用array()作为构造函数时,返回的是什么类型的数组
- 微风:将项目添加到复杂类型的数组中
- 在Javascript中创建一个与现有对象数组类型不同的对象数组
- 从react组件'数组类型状态属性弹出的正确方式
- 填充数组类型嵌套对象时出现的问题
- c#如何从数组类型Webmethode访问Asp.net标签值
- 创建一个猫鼬模型,其中包含数组类型返回未定义的那些在我的docker容器
- 增强数组类型
- ReactJS推送数组类型状态的正确方式
- 使用jquery,数组类型id中的值是未定义的
- 如何检查提供的参数是否为Javascript中的字节数组类型?
- Javascript数组类型转换
- Javascript中有多维数组类型吗?