【发布时间】:2015-10-08 04:52:53
【问题描述】:
我有以下数组(由 Redis HSCAN 返回):
[ 'foo',
'1437234647',
'bar',
'1437234633' ]
这是按键、值、键、值等顺序。我希望将其转换为 JSON 对象,如下所示:
{
"foo": "1437234647",
"bar": "1437234633"
}
如何做到这一点?我猜在遍历数组时使用奇数/偶数?
更新 - 这是我想出的,但正在寻找更好的解决方案:
function keyValueArrayToJson(inArr){
function isNumber(n) {
return n == parseFloat(n);
}
function isEven(n) {
return isNumber(n) && (n % 2 == 0);
}
var out = {};
for (var i in inArr) {
if(isEven(i)){
out[inArr[i]] = '';
} else {
var p = i -1;
out[inArr[p]] = inArr[i];
}
}
return out;
}
更新 2 - 感谢@squint - 结果对象的排序不是必需的。
【问题讨论】:
-
你尝试过任何东西吗?
-
您似乎暗示您希望对结果对象进行排序。如果是这样,你不能有任何保证。
标签: javascript arrays json redis