JavaScript:在对象中动态创建数组并向其中添加元素
实现
populate函数以动态填充filters对象 没问题,我来帮你搞定这个需求!我们要实现的populate函数需要能灵活地给全局的filters对象添加或更新数组类型的属性:
- 如果目标属性已经存在(比如
color或size),就把传入的value追加到对应的数组里 - 如果属性不存在,就创建这个新属性,并把
value放进一个新数组作为它的值
完整代码实现
// 初始空对象 let filters = {}; // 先填充需求里的初始数据 filters.color = ["Blue", "Black"]; filters.size = [70, 50]; // 实现populate函数 function populate(key, value) { // 检查filters中是否已存在该属性 if (filters[key]) { // 存在则将新值推入对应数组 filters[key].push(value); } else { // 不存在则创建新属性,值为包含当前value的数组 filters[key] = [value]; } }
测试调用示例
当我们执行调用:
populate("material", "plastic");
此时filters对象会变成你想要的样子:
filters = { color: ["Blue", "Black"], size: [70, 50], material: ["plastic"] };
代码说明
我没有针对color或size做特殊判断,而是用通用逻辑处理所有key——这样不管是已有的属性还是未来新增的属性,函数都能正常工作,扩展性更强。每次调用都会自动处理数组的追加或初始化,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者Ciprian
相关产品推荐
相关产品推荐

