Javascript 使用复选框创建键值对
我得到了这种类型的数组对象:Javascript 使用复选框创建键值对,javascript,vue.js,Javascript,Vue.js,我得到了这种类型的数组对象: { "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", "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)">
我们如何知道数组中的哪些值是品牌、适合度或颜色?请提供一个值和一个相关数据样本(虽然技术上可能,但仅使用一个项目测试过滤器并不理想)。根据您的方法,您不应该使用侵入性方法(过滤器不应该使用
拼接
或推送
来更改数据)。相反,您可以使用.filter()
不清楚的信息,使用api中的代码片段工具实现它。。id“Brand”filterValues 0 id“AWG-全天候装备”count 1 meta“1 id”addidas“count 1 meta”2 id“wrogn”count 1 meta“1 id”fit“filterValues 0 id”28“count 1 meta null 1 id”30“count 3 meta null 2 id”32“count 1 meta null 3 id”34“count 1 meta 2 id”颜色“filterValues 0 id”蓝色“count 2 meta”0000FF 1 id“青色”计数2看这里..按品牌、颜色等属性过滤
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)