0

javascript/jqueryでは、次のことをどのように達成しますか

old_dataset = [
{
    "dob": "xyz",
    "name": {
        "first": " abc",
        "last": "lastname"
    },
    "start_date": {
        "moth": "2",
        "day": "5",
        "year": 1
    },
    "children": [
        {
            "child": {
                "id": "1",
                "desc": "first child"
            }
        },
        {
            "child": {
                "id": "2",
                "desc": "second child"
            }
        }
    ]
},
{
    "dob": "er",
    "name": {
        "first": " abc",
        "last": "txt"
    },
    "start_date": {
        "moth": "2",
        "day": "5",
        "year": 1
    },
    "children": [
        {
            "child": {
                "id": "1",
                "desc": "first child"
            }
        },
        {
            "child": {
                "id": "2",
                "desc": "second child"
            }
        }
    ]
}

]

jqueryを使用して上記を反復し、次のように変更します

new_dataset = [
{
    "dob":"xyz",
    "name": <first and last name values>
    "start_date":<value of month day year>,
    "children": [ {
       child_id :1,
       child_id : 2
      }, 
    ]
 },{
    "dob":"er",
    "name": <first and last name values>
    "start_date":<value of month day year>,
    "children": [ {
       child_id :1,
       child_id : 2
      }, 
    ]
}]

誰かがデータを変換するコードを提供できれば、反復を理解するのに役立ちます

4

2 に答える 2

0

次のようなことができます。

function transformDataset(oldDataset) {
  var newDataset = [];
  var newObj;

  for (var i = 0; i < oldDataset.length; i++) {
    newObj = transformObj(oldDataset[i]);
    newDataset.push(newObj);
  }

  return newDataset;
}

function transformObj(obj) {
  var children = obj.children;

  obj.name = obj.name.first + ' ' + obj.name.last;
  obj.start_date = obj.start_date.month + ' ' + obj.start_date.day + ' ' + obj.start_date.year;

  obj.children = [];
  for (var i = 0; i < children.length; i++) {
    obj.children.push(children[i].child.id);
  }

  return obj;
}

var new_dataset = transformDataset(old_dataset);

new_dataset は、複数のプロパティを持つオブジェクトではなく、子 IDの配列を持つことに注意してください。child_idまた、タイプミスがありましたold_dataset.start_date.month(書かれていましたmoth)(またはそれは意図的だったのかもしれません)。

于 2013-02-22T16:23:41.930 に答える