You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

遍历对象并修改值:如何将所有产品价格降低20%?

实现产品价格批量降低20%的方法

针对你的需求,有两种简单易懂的方式可以实现,都是遍历对象里的每个产品然后修改价格:

方法一:使用for...in循环

这是遍历对象属性最基础的方式,适合新手理解:

const products = {
  product1: {
      name: 'Pasta',
      price: 25,
      quanity: 5,
  },
  product2: {
      name: 'Pizza',
      price: 20,
      quanity: 3,
  },
  product3: {
      name: 'Cola',
      price: 8,
      quanity: 4,
  },
};

// 遍历products对象的每个键(product1、product2、product3)
for (const key in products) {
  // 拿到当前产品对象
  const product = products[key];
  // 价格降低20%,也就是乘以0.8
  product.price *= 0.8;
}

// 验证修改结果
console.log(products);

解释:for...in会逐个取出对象的键名,通过products[key]就能拿到对应的产品对象,然后直接修改它的price属性——降低20%等价于保留80%,所以用*= 0.8来简化计算。

方法二:使用Object.keys() + forEach

这是更现代的写法,用数组遍历的方式处理对象键:

const products = {
  product1: {
      name: 'Pasta',
      price: 25,
      quanity: 5,
  },
  product2: {
      name: 'Pizza',
      price: 20,
      quanity: 3,
  },
  product3: {
      name: 'Cola',
      price: 8,
      quanity: 4,
  },
};

// 获取products的所有键,组成数组
Object.keys(products).forEach(key => {
  const product = products[key];
  product.price = product.price * 0.8;
});

console.log(products);

解释:Object.keys(products)会返回一个包含所有产品键名的数组(比如['product1', 'product2', 'product3']),然后用forEach遍历这个数组,每个循环里处理对应的产品价格。

注意点

  • 虽然products是用const声明的,但这不影响修改对象内部的属性——const只是限制了不能给products重新赋值,对象本身的内容是可以修改的。
  • 如果需要保留原对象,不想直接修改它,可以先复制每个产品对象再修改,不过新手阶段先掌握直接修改的方式就够了。

内容的提问来源于stack exchange,提问作者potion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 07:32:46