Javascript 将内容从一个对象复制到另一个对象时,按键名排除特定的键/值对
下面的示例工作正常,产生了所需的输出。但是,我想知道是否有一种更简洁的方法来执行此复制操作,即从Javascript 将内容从一个对象复制到另一个对象时,按键名排除特定的键/值对,javascript,Javascript,下面的示例工作正常,产生了所需的输出。但是,我想知道是否有一种更简洁的方法来执行此复制操作,即从数据对象中排除创建的键和更新的键的键/值对 const actionMode = 'update'; // 'create'; const dataFromParent = { itemid: "104", itemname: "insurance",
数据
对象中排除创建的键和更新的键的键/值对
const actionMode = 'update'; // 'create';
const dataFromParent = {
itemid: "104",
itemname: "insurance",
itemtype: "expense",
unitofmeasure: "$/yr",
created: "2021-04-14 05:59:30.097",
updated: "2021-04-14 05:59:30.097"
}
const data = { ...dataFromParent }; // make a shallow copy to avoid changing original object values
if (actionMode == 'update') {
delete data.created;
delete data.updated;
}
console.log(JSON.parse(JSON.stringify(dataFromParent)));
console.log(JSON.parse(JSON.stringify(data)));
控制台输出:
使用@vdegenne于2018年11月23日发布的建议,我尝试:
这会导致“编译失败”结果,并出现以下错误:
编辑:
此修改提供了所需的结果,并且没有任何“无未使用的变量”
错误:
let data = {};
if (actionMode == 'update') {
// eslint-disable-next-line no-unused-vars
const { created, updated, ...rest} = { ...dataFromParent };
data = rest;
}
您可以使用,这样它将在单个对象中指定已创建的
,已更新的
值,以及其他指定的属性
在使用VUE时,请在script
中的所有导入之前,在x.VUE文件中添加以下代码段
如果错误仍然存在,则更改package.json中的ESLint
config
"rules": {
"no-unused-vars": "off"
}
const dataFromParent={
itemid:“104”,
项目名称:“保险”,
itemtype:“费用”,
计量单位:“$/年”,
创建:“2021-04-1405:59:30.097”,
更新:“2021-04-1405:59:30.097”,
};
const{created,updated,…rest}=dataFromParent;//创建浅复制以避免更改原始对象值
常数数据=静止;
控制台日志(数据)代码>您可以使用,以便它将创建的
,更新的
值以及其他属性分配到单个对象中
在使用VUE时,请在script
中的所有导入之前,在x.VUE文件中添加以下代码段
如果错误仍然存在,则更改package.json中的ESLint
config
"rules": {
"no-unused-vars": "off"
}
const dataFromParent={
itemid:“104”,
项目名称:“保险”,
itemtype:“费用”,
计量单位:“$/年”,
创建:“2021-04-1405:59:30.097”,
更新:“2021-04-1405:59:30.097”,
};
const{created,updated,…rest}=dataFromParent;//创建浅复制以避免更改原始对象值
常数数据=静止;
控制台日志(数据)代码>您可以使用排列来排除属性
const dataFromParent={
itemid:“104”,
项目名称:“保险”,
itemtype:“费用”,
计量单位:“$/年”,
创建:“2021-04-1405:59:30.097”,
更新:“2021-04-1405:59:30.097”
}
const{created,updated,…data}={…datafrompent};
控制台日志(数据)代码>您可以使用排列来排除属性
const dataFromParent={
itemid:“104”,
项目名称:“保险”,
itemtype:“费用”,
计量单位:“$/年”,
创建:“2021-04-1405:59:30.097”,
更新:“2021-04-1405:59:30.097”
}
const{created,updated,…data}={…datafrompent};
控制台日志(数据)
你刚刚复制了我的答案..兄弟,看看我7分钟前的回答时间
和你的2分钟前的回答时间
。是的,“没有未使用的变量”错误仍然存在。我希望找到一种不关闭“无未使用变量”的方法,因为我发现这在大多数情况下都很有用。编辑时间为2分钟前。您是否使用了vue
或其他框架您刚刚复制了我的答案。兄弟,看看我7分钟前回答的7分钟前回答的时间和您的2分钟前回答的时间。
。是的,“无未使用变量”错误仍然存在。我希望找到一种不关闭“无未使用的变量”的方法,因为我发现这在大多数情况下都很有用。2分钟前编辑。您是否使用了vue
之类的框架?这可以回答您的问题吗?有点由于没有进口造成问题,我不得不想办法把这句话放在哪里。我将编辑原始问题以显示哪些更改起作用。添加注释后是否起作用?是的,这会处理“无未使用的变量”
错误。好极了这回答了你的问题吗?有点由于没有进口造成问题,我不得不想办法把这句话放在哪里。我将编辑原始问题以显示哪些更改起作用。添加注释后是否起作用?是的,这会处理“无未使用的变量”
错误。好极了
"rules": {
"no-unused-vars": "off"
}