我在JavaScript中有这个对象,其数据来自AJAX响应:
var data1 = [
{
"id": "ID1",
"name": "John"
},
{
"id": "ID2",
"name": "Mark"
},
];
如何将其转换为:
var data2 = [["ID1", "John"],["ID2", "Mark"]];
我需要这种格式来将数据填充到现有的空 DataTables ( row.add())。
感谢您的帮助。
修改 我将“ID1”和“ID2”添加到 data2 。
答案 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更新了问题。编辑代码以返回id
和name
。
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)
<强> ES6:强>
const data2 = data1.map(({ name }) => [name]);
<强> ES5:强>
var data2 = data1.map(function(item) {
return [item.name];
});
答案 6 :(得分:1)
或使用Array.prototype.reduce()
;
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;