Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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 前端如何处理后端返回数据中的冗余字段问题?_Javascript - Fatal编程技术网

Javascript 前端如何处理后端返回数据中的冗余字段问题?

Javascript 前端如何处理后端返回数据中的冗余字段问题?,javascript,Javascript,我希望得到的结果是{ 名称:“zzs”, 性别:“男孩” } 我不想这样做 let localData = { name: '', sex: '' } let resData = { name: 'zzs', sex: 'boy', age: 18, birthday: '10-21', address: 'demo' } localData = resData // { name: 'zzs', // sex: 'boy', // age: 18, /

我希望得到的结果是{ 名称:“zzs”, 性别:“男孩” }

我不想这样做

let localData = {
  name: '',
  sex: ''
}

let resData = {
  name: 'zzs',
  sex: 'boy',
  age: 18,
  birthday: '10-21',
  address: 'demo'
}

localData = resData

// { name: 'zzs',
//   sex: 'boy',
//   age: 18,
//   birthday: '10-21',
//   address: 'demo' }
console.log(localData) 
是否有一个良好的性能方法可以实现?
谢谢

您可以使用以下方法合并两个对象:

localData.name = resData.name;
localData.sex = resData.sex;
因此,使用您的示例数据,请参见下面的,或工作片段:

让本地数据={
名称:“”,
性别:''
}
设resData={
名称:“zzs”,
性:'男孩',
年龄:18岁,
生日:“10-21”,
地址:“演示”
}
Object.keys(resData).filter(key=>localData中的key).forEach(key=>localData[key]=resData[key]);

console.log(localData)
您可以使用外部库查看此代码
lodash
-

让本地数据={
名称:“”,
性别:''
}
设resData={
名称:“zzs”,
性:'男孩',
年龄:18岁,
生日:“10-21”,
地址:“演示”
}
localData=u.pick(resData,u.keys(localData));
console.log(本地数据)

您可以执行以下操作:

Object.keys(resData).filter(key => key in localData).forEach(key => localData[key] = resData[key]);

通过映射
localData
的键来获取驻留在
resData
中的值,可以使用
Object.fromEntries()
。这将创建一个新对象:

const localData={
名称:“”,
性别:''
}
常数resData={
名称:“zzs”,
性:'男孩',
年龄:18岁,
生日:“10-21”,
地址:“演示”
}
const res=Object.fromEntries(Object.keys(localData.map)(k=>[k,resData[k]]);

控制台日志(res)这是否回答了您的问题?您可能需要特别指出,这需要一个外部库。
let {name,sex} = resData; //Destructure only values required
localData = {name,sex} // assign to localdata

console.log(localData) //{name: "zzs", sex: "boy"}