JavaScript商品对象属性修改函数 - editGoods(id, key, value)
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}'
// };
原文地址: https://www.cveoy.top/t/topic/mEwP 著作权归作者所有。请勿转载和采集!