JavaScript从现有对象提取指定属性生成新对象的问题
问题解决:提取对象指定属性生成新对象
原代码的问题
- JS变量名区分大小写:你定义的对象是
Symbol(首字母大写),但函数里用的是小写的symbol,会导致引用错误。 - 属性名不符:你给新对象设置的是
price和vol,但预期是name和family属性。 - 返回结构错误:原代码把结果放到数组里再嵌套在
data对象中,和预期的直接返回{name:'sam', family:'wbb'}结构不符。
修正后的代码方案
方案1:直接提取属性生成新对象
// 建议避免用Symbol作为变量名,它是JS内置构造函数,易混淆 const userInfo = { city: 'canada', work: 'developer', id: 13276298846607, postId: '22222', cs: '53', name: 'sam', family:'wbb', adress :'candan canada', cfield: 12566, } const getTargetObj = () => { const newObj = {}; newObj.name = userInfo.name; newObj.family = userInfo.family; return newObj; }; console.log(getTargetObj()); // 输出 {name:'sam', family:'wbb'}
方案2:解构赋值(更简洁)
const getTargetObj = () => { // 从原对象解构出需要的属性,直接组合成新对象 const { name, family } = userInfo; return { name, family }; };
额外提示
尽量不要用Symbol作为自定义变量名,它属于JS的内置全局对象,使用自定义名称(比如userInfo)能避免潜在的冲突和混淆。
内容的提问来源于stack exchange,提问作者sepideh bb
相关产品推荐
相关产品推荐

