jQuery 将对象数组转换为带键的数组
jQuery Convert Object Array to Array with keys
我有一个对象数组,如下所示:
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];
});
但它只有 return 没有键的值:
["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 中搜索过,我找不到类似的东西。
EDIT 为了清楚我的对象数组的来源,我添加了这个以供参考。它来自 ajax 请求并且已经排序:
var ticks = {};
$.each(result, function(key,value) {
ticks[key] = value.name;
});
改用:
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).
或者只使用普通的js:
var arr = [];
for (var i in obj) {
if (obj.hasOwnProperty(i)) {
arr.push([i, obj[i]]);
}
}
您可以创建一个新的 Javascript 对象和 return,如下所示:
var myobj_array= $.map(ticks, function(value, index) {
Var obj=[[index,value]];
return obj;
});
我有一个对象数组,如下所示:
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];
});
但它只有 return 没有键的值:
["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 中搜索过,我找不到类似的东西。
EDIT 为了清楚我的对象数组的来源,我添加了这个以供参考。它来自 ajax 请求并且已经排序:
var ticks = {};
$.each(result, function(key,value) {
ticks[key] = value.name;
});
改用:
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).
或者只使用普通的js:
var arr = [];
for (var i in obj) {
if (obj.hasOwnProperty(i)) {
arr.push([i, obj[i]]);
}
}
您可以创建一个新的 Javascript 对象和 return,如下所示:
var myobj_array= $.map(ticks, function(value, index) {
Var obj=[[index,value]];
return obj;
});