在JavaScript中转换对象数组(字符串化)

时间:2017-09-28 09:43:31

标签: javascript jquery arrays datatables

我在JavaScript中有这个对象,其数据来自AJAX响应:

var data1 = [
   {
      "id": "ID1",
      "name": "John"
   },
   {
      "id": "ID2",
      "name": "Mark"
   },
];

如何将其转换为:

var data2 = [["ID1", "John"],["ID2", "Mark"]];

我需要这种格式来将数据填充到现有的空 DataTables row.add())。

感谢您的帮助。

修改 我将“ID1”“ID2”添加到 data2

7 个答案:

答案 0 :(得分:4)

如果尚未解析AJAX响应,则首先将其设为Object

data1 = JSON.parse( ajaxResponseStr );

假设data1已经是对象,只需尝试

data2 = data1.map( function(item){ return [item.name] });

答案 1 :(得分:2)

使用Array.prototype.map()删除不需要的字段,并将每个对象转换为指定的格式,如下所示:

var data1 = [{
    "id": "ID1",
    "name": "John"
  },
  {
    "id": "ID2",
    "name": "Mark"
  },
];

var data2 = data1.map(function(item) {
  return [item["name"]];
});

console.log(data2);

答案 2 :(得分:1)

您可以使用array#map创建一个名称和ID数组。

编辑: OP更新了问题。编辑代码以返回idname



var data1 = [{"id": "ID1","name": "John"},{"id": "ID2","name": "Mark"}];
var data2 = data1.map(({id, name}) => [id, name]);
console.log(data2);




答案 3 :(得分:1)

您的data1是一个数组,因此您可以轻松地使用.map方法。 .map方法返回一个值数组,从回调函数返回。

data2 = data1.map(function(item) { return [item.name]});

答案 4 :(得分:1)

基于您的数据结构,编码如下:

import matplotlib
matplotlib.use('TkAgg')

from numpy import arange, sin, pi
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
# implement the default mpl key bindings
from matplotlib.backend_bases import key_press_handler


from matplotlib.figure import Figure

答案 5 :(得分:1)

只需使用enter image description here

<强> ES6:

const data2 = data1.map(({ name }) => [name]);

<强> ES5:

var data2 = data1.map(function(item) {
   return [item.name];
});

答案 6 :(得分:1)

或使用Array.prototype.reduce();

&#13;
&#13;
var data1 = [
   {
      "id": "ID1",
      "name": "John"
   },
   {
      "id": "ID2",
      "name": "Mark"
   },
];

var data2 = data1.reduce(function(accum, item) { accum.push([item.name]); return accum; }, []);
console.log(data2);
&#13;
&#13;
&#13;