0
var data = [
["default_PROJECT", "Allow", "Connect", "Allow", "AddComment", "Allow", "Write",
"Allow", "ViewComments", "Allow", "ExportData", "Allow", "ExportImage", "Allow",
"ViewUnderlyingData", "Allow", "Read", "Allow", "ShareView", "Allow", "Filter"
],
["testing_PROJECT", "Allow", "ExportImage", "Allow", "Write", "Allow", "ViewComments",
"Allow", "ShareView", "Allow", "Filter", "Allow", "ExportData", "Allow", "Connect", "Allow",
"Read", "Allow", "ViewUnderlyingData", "Allow", "AddComment", "Allow", "ViewComments", "Deny", "ExportData", "Allow",
"AddComment", "Deny", "Write", "Allow", "Read", "Deny", "ExportXml", "Deny", "ShareView", "Allow", "Connect", "Allow", "ChangeHierarchy", "Allow",
"WebAuthoring", "Deny", "ViewUnderlyingData", "Deny", "Filter", "Deny", "ExportImage"
]
];
var result = [];
for (var i = 0, len = data.length; i < len; i++) {
var list = data[i];
result[i] = {
Project: list[0]
};
for (var j = list.length - 1; j >= 1; j = j - 2) {
var key = list[j];
var value = list[j - 1];
result[i][key] = value;
}
}
console.log(result);
对于某些键可能存在多个值。如果现有的值是允许的,并且对于同一个密钥有一个值被拒绝,那么我需要该密钥的新值被拒绝。例如,在第二个数组中,“ExportImage”键的值应该是“Deny”而不是“Allow”。我创建了对象,但是如何检查值是否应该被覆盖?需要检查密钥是否已经存在并显示王牌值,javascript
真的建议另格式为您的数据,但是你想只是最新的拒绝/允许值或拒绝获取比允许更多的优先级?允许,拒绝,允许会导致允许还是拒绝? – juvian
有你存储在复杂的阵列,而不是实际支持键 - >值的简单对象这个数据什么特别的原因? –
我正在使这个混乱的数据类型的对象数组的变量结果。 @juvian拒绝花费的时间比让更多的优先级,如果相同的密钥存在和值允许和拒绝它应该只是被拒绝。 – Ben