Javascript - 按键/值顺序到JSON的数组

时间:2015-07-18 16:31:32

标签: javascript arrays json redis

我有以下数组(由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 - 不需要对结果对象进行排序。

2 个答案:

答案 0 :(得分:1)

您需要for loop 2作为step

var array = ['foo', '1437234647', 'bar', '1437234633'];
    var object = {};
    for (i = 0; i < array.length - 1; i += 2) {
      object[array[i]] = array[i + 1];
    }
    alert(JSON.stringify(object));

答案 1 :(得分:0)

是的,for循环应该可以解决这个问题

&#13;
&#13;
create temporary table tempt as
    select distinct movie, link
    from t;

truncate table t;

insert into t(movie, link)
    select movie, link
    from tempt;
&#13;
create unique index idx_t_movie_link on t(movie, link);
&#13;
&#13;
&#13;