Javascript 将网格中的所有记录提取到数组中

Javascript 将网格中的所有记录提取到数组中,javascript,jquery,kendo-ui,Javascript,Jquery,Kendo Ui,当单击按钮时我想获取网格中的所有数据,这些数据将存储到一个数组中,这样我就可以使用ajax函数解析为php。但是我在网格中有一个循环列occLevel\uz。我需要帮助如何使用for循环获取所有occLevel\u 0->3值 $(“#网格”).kendoGrid({ 栏目:[ {字段:“名称”}, {字段:“occlevel_0”}, {字段:“occlevel_1”}, {字段:“occlevel_2”}, {字段:“occlevel_3”}, ], 数据源:{ 数据:[{ “姓名”:“约

当单击
按钮时
我想获取网格中的所有数据,这些数据将存储到一个数组中,这样我就可以使用ajax函数解析为php。但是我在网格中有一个循环列
occLevel\uz
。我需要帮助如何使用for循环获取所有
occLevel\u 0->3

$(“#网格”).kendoGrid({
栏目:[
{字段:“名称”},
{字段:“occlevel_0”},
{字段:“occlevel_1”},
{字段:“occlevel_2”},
{字段:“occlevel_3”},
],
数据源:{
数据:[{
“姓名”:“约翰”,
“occlevel_0”:11,
“occlevel_1”:31,
“occlevel_2”:51,
“occlevel_3”:61
}, {
“姓名”:“简”,
“occlevel_0”:12,
“occlevel_1”:32,
“occlevel_2”:52,
“occlevel_3”:62
}, {
“姓名”:“詹姆斯”,
“occlevel_0”:13,
“occlevel_1”:33,
“occlevel_2”:53,
“occlevel_3”:63
}],
模式:{
型号:{
id:“id”,
}
}
},
可编辑:真
});
$(“#获取所有数据”).kendoButton();
var按钮=$(“#获取所有数据”).data(“kendoButton”);
按钮绑定(“点击”,功能(e){
var grid=$('#grid').data('kendoGrid').dataSource.data();
控制台日志(网格);
可变项目={
方法:“updateOccLevel”//php中的函数调用
};
对于(var i=0;i

更新网格
这样做:

const myObj ={
      columns: [
        { field: "Name" },
        { field: "occlevel_0" },
        { field: "occlevel_1" },
        { field: "occlevel_2" },
        { field: "occlevel_3" },
      ],
      dataSource: {
       data: [{
            "Name": "John",
            "occlevel_0": 11,
            "occlevel_1": 31,
            "occlevel_2": 51,
            "occlevel_3": 61
          }, {
            "Name": "Jane",
            "occlevel_0": 12,
            "occlevel_1": 32,
            "occlevel_2": 52,
            "occlevel_3": 62
          }, {
            "Name": "James",
            "occlevel_0": 13,
            "occlevel_1": 33,
            "occlevel_2": 53,
            "occlevel_3": 63
          }],
       schema:{
        model: {
         id: "id",
        }
       }
      },
      editable: true
    };

idArray = []

function func(obj) {
   idArray.push(obj["occlevel_0"]);
   if (!obj.children) {
       return
   }

   obj.children.forEach(child => func(child))
}


func(myObj);
console.log(idArray);

我不确定你想要什么,但你可以循环对象属性。提取键和值

var data = $('#grid').getKendoGrid().dataSource.data().toJSON();

var newItems = [];

for(var i = 0; i <  data.length; i++) {
  var item = data[i];
  var newItem = {};

  for (var prop in item) {
    console.log(prop + " = " +item[prop]);
    newItem[prop] = item[prop];
  }

  newItems.push(newItem);
}

console.log(newItems);
var data=$('#grid').getKendoGrid().dataSource.data().toJSON();
var newItems=[];
对于(变量i=0;i
如果这不是您想要的,请用数组的外观更新问题


示例:

只需在现有循环中使用一个附加循环:

for ( var i=0; i < grid.length; i++ ) {  
    items["Name_" + i] = grid[i]['Name'];

    for (let n = 0; n <= 3; n++) {
        items["occlvl_" + i + "_" + n] = grid[i]['occlevel_' + n]  // ???
    }
}; 
for(var i=0;i对于(让n=0;n这就是你想要的东西:你有一点让我感到奇怪:你几乎每周都会发布问题,并从很多人那里得到很多帮助,但我从来没有看到你对他们进行投票……对不起,但接受答案和对答案进行投票有什么不同?我认为两者都是一样的。在这种情况下,下一次两个都可以。谢谢你的支持通知我。@DontBannedMegain你可以随心所欲地投票,但如果有任何内容对你有用,它会鼓励你,而不仅仅是公认的答案。只是说。只是一个提示:你不需要使用
JSON.parse
JSON.stringify
。为此,有一个方法称为数据,例如
dataSource.data().toJson()