【问题标题】:jQuery Convert Object Array to Array with keysjQuery 将对象数组转换为带键的数组
【发布时间】:2016-07-05 00:08:03
【问题描述】:

我有一个对象数组,如下所示:

Object {0: "Ma. Jessa Martinez", 1: "Edwin Cuevas", 2: "Gerum Generol", 3: "Roy delos Reyes", 4: "Hannah Montecillo", 5: "Ralph Turla", 6: "Edralyn Danabar", 7: "Angelo Sto Domingo", 8: "Rhina Dela Cruz", 9: "Ricardo Camara", 10: "Joene Floresca"}

我想转换成数组,如:

[[0,"Ma. Jessa Martinez"],[1,"Edwin Cuevas"],[2,"Gerum Generol"], and so on]

我尝试过使用

 var myobj_array= $.map(ticks, function(value, index) {
    return [value];
 });

但它只返回没有键的值:

["Ma. Jessa Martinez", "Edwin Cuevas", "Gerum Generol", "Roy delos Reyes", "Hannah Montecillo", "Ralph Turla", "Edralyn Danabar", "Angelo Sto Domingo", "Rhina Dela Cruz", "Ricardo Camara", "Joene Floresca"]

还有其他方法吗?我已经在 google 中搜索过,但找不到类似的东西。

编辑为了清楚我的对象数组来自哪里,我添加了这个以供参考。它来自一个 ajax 请求并且已经排序:

var ticks = {};
$.each(result, function(key,value) {
    ticks[key] = value.name;
});

【问题讨论】:

  • 你不需要像[[0,"Ma. Jessa Martinez"],[1,"Edwin Cuevas"],[2,"Gerum Generol"], and so on]这样构建一个数组。您已经可以使用your_array[num_key]array[0] = "Ma. Jessa Martinez" 访问您的平面阵列。
  • @PinkTurtle 是对的,但在这个问题上是错误的。因为用户可以有另一个数字而不是 0,所以它不能正常工作。
  • 大家好,谢谢。我的数据是正确的,并且总是从零开始并排序。我会将它用作条形图 Flot Charts 中的标签,它需要我上面提到的格式 :) 感谢您的帮助,我将选择 Carlos 的答案。

标签: javascript jquery arrays associative-array


【解决方案1】:

改用:

var myobj_array= $.map(ticks, function(value, index) {
    return [[index,value]];
});

console.log(myobj_array);

@PinkTurtle 点很重要,因为我们可能会注意性能或使用 vanillajs 代替 jQuery。

但是如果使用对象结构来代替:

{80: "Ma. Jessa Martinez", 12: "Edwin Cuevas"}

并且我们只使用索引进行处理(并且我们检索它就像 arr[80] 将是未定义的,只有当我们使用 arr[0] 才能工作,但用户的索引不是 0 ,是 80)。

【讨论】:

  • 谢谢卡洛斯,我已经编辑了我的问题来解释我的对象数组来自哪里。随意检查,如果你能建议一个更好的方法来做我需要的。谢谢
  • @Carlos 你确定[index,value] 周围的额外括号对是正确的/强制性的吗?
  • 他说他想要这样的结构:[ [0,"Ma. Jessa Martinez"] ](包含索引为 0:id 和 1:name 的数组的数组)。当它是一个对象时,他可以创建一个循环来处理它,但也许他发现使用数组很容易。
【解决方案2】:

或者只使用普通的js:

var arr = [];
for (var i in obj) {
    if (obj.hasOwnProperty(i)) {
       arr.push([i, obj[i]]);
    }
}

【讨论】:

    【解决方案3】:

    您可以创建一个新的 Javascript 对象并返回如下:

     var myobj_array= $.map(ticks, function(value, index) {
       Var obj=[[index,value]];
      return obj;
     });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-17
      • 2019-06-20
      • 2010-12-24
      • 2021-02-14
      • 1970-01-01
      • 2014-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多