JavaScript 商品对象属性修改函数 - editGoods(id, key, value)

该函数用于修改商品对象中的属性值。

editGoods(id, key, value) {
  let goods = this.goodsList.find(item => item.id === id);
  if (goods) {
    if (key === 'cid') {
      let noteObj = goods.note ? JSON.parse(goods.note) : {};
      noteObj.cid = value;
      goods.note = JSON.stringify(noteObj);
    } else if (key === 'yid') {
      let noteObj = goods.note ? JSON.parse(goods.note) : {};
      noteObj.yid = value;
      goods.note = JSON.stringify(noteObj);      
    } else {
      goods[key] = value;
    }
  }
},

功能说明:

  • 函数接收三个参数:id(商品ID)、key(要修改的属性名)、value(要设置的值)。
  • 函数首先通过find方法查找商品列表中 id 匹配的商品对象。
  • 如果找到商品对象,则根据 key 的值进行不同的操作:
    • 如果 key 为 'cid' 或 'yid',则会先解析 note 属性中的 JSON 字符串,将 value 赋值给对应的属性,最后将修改后的 JSON 字符串重新赋值给 note 属性。
    • 如果 key 不为 'cid' 或 'yid',则直接将 value 赋值给 goods 的对应属性。
  • 函数最后会将修改后的商品对象立即更新到商品列表中。

示例:

// 假设 goodsList 中有一个商品对象 goods
const goods = {
  id: 1,
  name: '商品A',
  price: 100,
  note: '{"cid": 123}' // 初始 note 属性值为 JSON 字符串
};

// 修改商品对象的 cid 属性
editGoods(1, 'cid', 456);

// 修改后,goods 对象变为
// goods = {
//   id: 1,
//   name: '商品A',
//   price: 100,
//   note: '{"cid": 456}' // note 属性值更新为修改后的 JSON 字符串
// };

// 修改商品对象的 name 属性
editGoods(1, 'name', '商品B');

// 修改后,goods 对象变为
// goods = {
//   id: 1,
//   name: '商品B', // name 属性值更新为 '商品B'
//   price: 100,
//   note: '{"cid": 456}'
// };
JavaScript商品对象属性修改函数 - editGoods(id, key, value)

原文地址: https://www.cveoy.top/t/topic/mEwP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录