javascript - 使用复选框创建键值对
问题描述
我得到了这种类型的数组对象:
{
"Brand": [" AWG - ALL WEATHER GEAR", "addidas", "28", "blue", "cyan"],
"fit": [" AWG - ALL WEATHER GEAR", "addidas", "28", "blue", "cyan"],
"color": [" AWG - ALL WEATHER GEAR", "addidas", "28", "blue", "cyan"]
}
带有复选框类别和动态出现的类别。我想要这种类型的对象数组
"Brand": [" AWG - ALL WEATHER GEAR", "addidas"],
"fit": ["28", "30", "32"],
"color": ["blue", "cyan"]
这是 vue.js 中的复选框代码
<input type="checkbox"
class="form-check-input"
:id="attributefilter.id"
:value="filter.id+':'+attributefilter.id"
name="attribute_category"
v-model="attributeModel"
@change="filterbyId(filter.id,attributefilter.id)">
这里是js
methods:{
filterbyId: function (a,b) {
if(this.fval.includes(b)){
this.fval.splice(this.fval.indexOf(this.b), 1)
} else {
this.fval.push(b)
}
this.result[a] = this.fval;
this.fstr = JSON.stringify(this.result);
}
解决方案
var farray=["brand:xx","brand:yy","fit:28","fit:34","color:red","color:blue"];
var obj = farray.reduce(function(acc, cur, i) {
cur=cur.split(':');
var key=cur[0];
if (!acc.hasOwnProperty(key))
{
acc[key]=[];
acc[key].push(cur[1]);
}else{
acc[key].push(cur[1]);
}
//console.log(acc)
//alert(fstr);
return acc;
}, {});
fstrobj = JSON.stringify(obj);
alert(fstrobj)
推荐阅读
- python - 我无法使用“pip”功能下载任何内容
- python - 凯撒密码返回以 26 种方式解密的消息 - Python
- android - 在根项目“android”中找不到任务“bundleRelease”
- c# - 我无法将最终答案转换为十进制形式
- databricks - 如何将日志分析工作区与 Azure Databricks 笔记本集成以监视 databricks 笔记本(自定义日志记录)?
- linux - bash比较文件夹之间的文件,如果它们不退出,做一些事情
- python - Conda 元包 m2w64-toolchain 需要安装在基础环境中,而不是虚拟的
- arrays - 我可以从一系列 countif 函数中创建一个数组吗?
- docker - 无法安装 Docker - 哈希和不匹配(Ubuntu 18.04、Vagrant、Virtualbox)
- javascript - React - 从 100 个按钮数组中更改一个按钮的状态,并一键重置所有按钮的状态