JS克隆对象并为所有值添加前缀的实现方法
克隆对象并为所有值添加前缀的实现方法
假设有这样一个对象:
const A = { key_a1: "value_a1", key_a2: "value_a2" };
我们需要克隆它得到对象B,并且给每个值都加上prefix_前缀,最终结果如下:
const B = { key_a1: "prefix_value_a1", key_a2: "prefix_value_a2" };
已知扩展语法const B = { ...A }只能复制对象结构,没法直接修改值,这里给你几个实用的实现方式:
使用
Object.entries+reduce
这种方法通过遍历键值对,逐步构建新对象:const A = { key_a1: "value_a1", key_a2: "value_a2" }; const prefix = "prefix_"; const B = Object.entries(A).reduce((acc, [key, value]) => { acc[key] = `${prefix}${value}`; return acc; }, {});使用
Object.entries+map+Object.fromEntries
这是更简洁的写法,先把对象转成键值对数组,处理后再转回对象:const A = { key_a1: "value_a1", key_a2: "value_a2" }; const prefix = "prefix_"; const B = Object.fromEntries( Object.entries(A).map(([key, value]) => [key, `${prefix}${value}`]) );使用
for...in循环遍历
最基础的遍历方式,手动处理每个属性:const A = { key_a1: "value_a1", key_a2: "value_a2" }; const prefix = "prefix_"; const B = {}; for (const key in A) { if (A.hasOwnProperty(key)) { B[key] = `${prefix}${A[key]}`; } }
内容的提问来源于stack exchange,提问作者Sergey Shevchenko
相关产品推荐
相关产品推荐

