jQuery使用键将对象数组转换为数组

时间:2016-03-18 09:41:40

标签: javascript jquery arrays associative-array

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

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"]

还有其他方法吗?我已经在谷歌搜索了,我找不到类似的东西。

编辑为了清楚我的对象阵列的来源,我添加了这个以供参考。它来自ajax请求,已经排序:

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

3 个答案:

答案 0 :(得分:4)

改为使用:

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)

答案 1 :(得分:0)

或者只使用普通的js:

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

答案 2 :(得分:0)

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

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