Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 修剪JS对象以删除带有花括号的额外参数_Javascript_Arrays_Typescript_Ecmascript 6 - Fatal编程技术网

Javascript 修剪JS对象以删除带有花括号的额外参数

Javascript 修剪JS对象以删除带有花括号的额外参数,javascript,arrays,typescript,ecmascript-6,Javascript,Arrays,Typescript,Ecmascript 6,我这里有一个对象响应 result.joblist = { "collection_job_status_list": [ { "application_context": { "application_id": "a4", "context_id": "c4" }, "creation_time": "15699018476102", "progress": 100, "status": "

我这里有一个对象响应

result.joblist = {
  "collection_job_status_list": [
    {
      "application_context": {
        "application_id": "a4",
        "context_id": "c4"
      },
      "creation_time": "15699018476102",
      "progress": 100,
      "status": "READY",
      "phase": "ACTIVE",
      "job_error": {}
    },
    {
      "application_context": {
        "application_id": "a6",
        "context_id": "c6"
      },
      "creation_time": "15698648632523",
      "progress": 100,
      "status": "READY",
      "phase": "ACTIVE",
      "job_error": {}
    }
  ],
  "result": {
    "request_result": "ACCEPTED",
    "error": {}
  }
}
这里需要去掉
{“application\u context”:&ending}
,只需要
application\u id:“a4”,“context\u id:“c4”
处于同一级别

我曾经尝试过这样的事情,但没有成功

var newObj: any = {};
if (allJobs && allJobs.length > 0) {
  // this.rowData = this.allJobs;
  // this.allJobs = this.allJobs['application_id'];
  //let ele:object = allJobs.application_context;
  allJobs.forEach(ele => {
    newObj = {
      application_id: ele.application_context.application_id,
      context_id: ele.application_context.application_context
    };
    return newObj;
  });
}

您可以使用
映射
解构

  • 从结果中获取收集作业状态列表
  • 在值上循环从
    application\u上下文中取出所需的值
    键,并与其余值合并
  • 构建与原始结果相同的结构
let result={“collection\u job\u status\u list”:[{“application\u context”:{“application\u id”:“a4”,“context\u id”:“c4”;“creation\u time”:“15699018476102”,“progress”:100,“status”:“READY”,“phase”:“ACTIVE”,“job\u error”:{},{“application\u context\u context”:{“application\u id”:“a6”;“c6”;“creation\u time”:“15698648648633”,“progress”:100,“status”“:”准备“,”阶段“:”活动“,”作业错误“:{}}],”结果“:{”请求结果“:”已接受“,”错误“:{}}”
让{collection\u job\u status\u list,…rest}=result
let modified=集合\作业\状态\列表.map(({
应用程序上下文:{
应用程序id,
上下文id
},
休息
})=>({…rest,上下文\ id,应用程序\ id}))
让最终={
集合\作业\状态\列表:已修改,
休息
}

console.log(final)
您需要使用
map
功能

constresult={};
result.joblist={
“收集作业状态列表”:[
{
“应用程序上下文”:{
“应用程序id”:“a4”,
“上下文id”:“c4”
},
“创建时间”:“15699018476102”,
“进展”:100,
“状态”:“就绪”,
“阶段”:“活动”,
“作业错误”:{}
},
{
“应用程序上下文”:{
“应用程序id”:“a6”,
“上下文id”:“c6”
},
“创建时间”:“1569864832523”,
“进展”:100,
“状态”:“就绪”,
“阶段”:“活动”,
“作业错误”:{}
}
],
“结果”:{
“请求结果”:“已接受”,
“错误”:{}
}
}
result.joblist.collection\u job\u status\u list=result.joblist.collection\u job\u status\u list.map(项=>{
返回{
“应用程序id”:item.application\u context.application\u id,
“context\u id”:item.application\u context.context\u id
}
})

console.log(result)
这里需要的是一张地图。参考:

尝试按如下所示修改代码,您将获得预期的输出

var newObj: any = {};
var newArray;
if (allJobs && allJobs.length > 0) {
  newArray = allJobs.map(ele => {
    newObj = {
      application_id: ele.application_context.application_id,
      context_id: ele.application_context.application_context
    };
    return newObj;
  });
}

希望这有帮助:)

var newObj:any={};如果(allJobs&&allJobs.length>0){//this.rowData=this.allJobs;//this.allJobs=this.allJobs['application\u id'];//让ele:object=allJobs.application\u context;allJobs.forEach(ele=>{newObj={“application\u id”:ele.application\u context.application\u id),“context_id”:ele.application_context.application_context}返回newObj;});}您的预期输出是什么,是否可以更新有问题的内容?我们是否需要从对象中删除应用程序上下文属性,并且这些内部属性希望位于根对象中?是的,希望保持其他属性不变。谢谢,最好避免使用新变量或将结果存储在新对象中。看起来不错,谢谢!我如何保持这些属性不变e其他项目(与同一级别的其他项目一样)以及…应用程序_context@Gaurav总是乐于助人:),