在Vue方法中构造指定嵌套结构数组的实现方法咨询
解决方案
你需要构造的是以分类ID为键、对应对象数组为值的对象结构,而非普通数组,调整逻辑如下:
- 首先在data中新增一个变量用于存储最终构造的结果,方便后续调用
- 在
testChange方法中按照目标格式逐层构造结构即可
修改后的完整代码如下:
var vm = new Vue({ el: "#app", props: { }, data: { testing_dates:['2021-11-29', '2021-11-30'], cat_id: [123], // 新增存储结果的变量 resultData: {} }, methods: { testChange(event, id){ const item = "B-24"; const selectedDate = event.target.value; // 注意你传入的id是数组[123],所以取第一个元素转成字符串作为键 const catKey = String(id[0]); // 构造目标结构 this.resultData[catKey] = [ { item: item, new_date: selectedDate } ] // 打印验证结果 console.log(this.resultData); }, }, });
如果需要支持同一个分类ID下追加多条数据而非覆盖,可以调整为如下逻辑:
testChange(event, id){ const item = "B-24"; const selectedDate = event.target.value; const catKey = String(id[0]); // 如果当前分类ID对应的数组不存在,先初始化空数组 if(!this.resultData[catKey]) { this.resultData[catKey] = [] } // 往数组中追加新的对象 this.resultData[catKey].push({ item: item, new_date: selectedDate }) console.log(this.resultData); }
内容的提问来源于stack exchange,提问作者Geoff_S
相关产品推荐
相关产品推荐

