javascript - angularjs,需要转换对象属性

标签 javascript

在我的 angularjs 应用程序中,我有一个模型,它是对象数组,如下所示:

 $scope.originalData = [{

     "id": 10000,
     "transactionid": "gec43434",
     "status": "COMPLETED",
     "session_id": "TTYUU455667",
     "errors": "1",
     "start_timestamp": "2016-11-07 02:35:35",
     "log_field": "Sample Text For Testing"

 }, {

     "id": 10001,
     "transactionid": "r34fdfdf",
     "status": "COMPLETED",
     "session_id": "dfdfer3453df",
     "errors": "3",
     "start_timestamp": "2016-10-07 03:20:15",
     "log_field": "Sample Text2 For Testing"

 }];

现在我需要修改相同的对象数组,如下所示,但 log_field 其余的所有属性应位于同一对象的另一个属性下。

$scope.modifiedData = [{
     "subItems": {
         "id": 1000,
         "transactionid": "gec43434",
         "status": "COMPLETED",
         "session_id": "TTYUU455667",
         "errors": "1",
         "start_timestamp": "2016-11-07 02:35:35"
     },
     "log_field": "Sample Text For Testing"

 }, {
     "subItems": {
         "id": 10001,
         "transactionid": "r34fdfdf",
         "status": "COMPLETED",
         "session_id": "dfdfer3453df",
         "errors": "3",
         "start_timestamp": "2016-10-07 03:20:15"
     },
     "log_field": "Sample Text2 For Testing"

 }]

最佳答案

这是你可以做的。使用 Array.map 并删除。

var originalData = [{
  "id": 10000,
  "transactionid": "gec43434",
  "status": "COMPLETED",
  "session_id": "TTYUU455667",
  "errors": "1",
  "start_timestamp": "2016-11-07 02:35:35",
  "log_field": "Sample Text For Testing"
}, {
  "id": 10001,
  "transactionid": "r34fdfdf",
  "status": "COMPLETED",
  "session_id": "dfdfer3453df",
  "errors": "3",
  "start_timestamp": "2016-10-07 03:20:15",
  "log_field": "Sample Text2 For Testing"
}];


var result = originalData.map((item) => {
  var log_field = item.log_field;
  delete item.log_field;
  return {
    "subItems": item,
    "log_field": log_field
  };
});

console.log(result);

以防万一,如果您不应该修改原始数据,您可以执行以下操作。

var originalData = [{
  "id": 10000,
  "transactionid": "gec43434",
  "status": "COMPLETED",
  "session_id": "TTYUU455667",
  "errors": "1",
  "start_timestamp": "2016-11-07 02:35:35",
  "log_field": "Sample Text For Testing"
}, {
  "id": 10001,
  "transactionid": "r34fdfdf",
  "status": "COMPLETED",
  "session_id": "dfdfer3453df",
  "errors": "3",
  "start_timestamp": "2016-10-07 03:20:15",
  "log_field": "Sample Text2 For Testing"
}];


var result = originalData.map((item) => {
  //Withou modifying original data.
  var resultItem = Object.assign({}, item),
    log_field = resultItem.log_field;
  delete resultItem.log_field;

  return {
    "subItems": resultItem,
    "log_field": log_field
  };
});
console.log(originalData);
console.log(result);

关于javascript - angularjs,需要转换对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40757031/

相关文章:

javascript - Jquery倒计时但如果页面刷新/F5仍然保留计时器

javascript - ES6 模板文字 : How to pass a scope before they are interpreted?

javascript - 对一个负数的数字求和

javascript - evaluateJavaScript() 只工作一次

javascript - 如何从 ASP.NET 代码隐藏中禁用 JqueryUI 对话框按钮?

javascript - 在 jQuery 中,如何为动态内容添加动画效果(如 slideDown)?

javascript - 从jsf中的托管bean调用javascript的参数化函数

javascript - 如何从 facebook 等文本框中检测 url?

Javascript 多个 IMG 数组

javascript - 使用ajax更新页面数据