我有以下的Javascript对象:如何从多维数组转换为Javascript中的一维对象?
var data = {
"customerSiteName": "Caldwell Sugar",
"AgreementID": "0",
"AgreementType": "",
"AgreementTypeID": {
"1": "Percentage Support",
"2": "Consignment Support",
"7": "Mobile Solutions",
"9": "SmartGlance Subscription",
"10": "Customer FIRST Lite",
"11": "Solution Support - LPS",
"12": "InSight Subscription"
},
"ProgramLevel": "",
"CFProgramLevelID": [
[1, "Primary"],
[2, "Standard"],
[3, "Premium"],
[4, "Elite"]
],
"DistributorID": "16",
"StartDate": "",
"EndDate": ""
};
我需要的关键CFProgramLevelID
这是一个数组为一名维对象转换。这是我到目前为止已经试过:
$.each(data, function(key, value) {
if (value !== null && value instanceof Array) {
var obj = dataObj = value.reduce((p, c, i) => (Array.isArray(c) && (p[i] ={[c.length - 1]: c[c.length - 1]}), p), {});
console.log(obj);
}
});
但CFProgramLevelID
每个值转换为对象在该返回:
Object {0: Object, 1: Object, 2: Object, 3: Object}
0: Object
1: "Primary"
__proto__: Object
1: Object
1: "Standard"
__proto__: Object
2: Object
1: "Premium"
__proto__: Object
3: Object
1: "Elite"
__proto__: Object
我想要得到的是如下:
"CFProgramLevelID": {
"1": "Primary",
"2": "Standard",
"3": "Premium",
"4": "Elite"
}
我做错了什么?
我忘了说我已经创建了一个的jsfiddle here
你应该解释你粘贴的代码,而不是做代码转储。 – Adam
我通过往复将多维对象转换为一维对象。 我想我们可以对多维数组使用相同的方法。 如果稍微更改我的代码,它将适用于此问题。 – WDV329