store 中的 vuex 过滤器对象
vuex filter object in store
我的 Vuex 状态中有一个对象的对象,我正在尝试过滤以更新 UI。我无法通过对象中的属性之一过滤对象。我试图避免创建一个临时对象来保存过滤后的数据。
这是我的数据对象:
var data = {
'xxxxx' : {
id: 'xxxxx',
assessed_value: 1900,
creditid: 'zzzzz',
full_value: 100,
population: 200
},
'yyyy' : {
id: 'yyyy',
assessed_value: 2000,
creditid: 'pppp',
full_value: 300,
population: 400
},
'aaaa' : {
id: 'aaaa',
assessed_value: 5000,
creditid: 'pppp',
full_value: 100,
population: 600
}
};
我正在尝试按 creditid 进行过滤。例如,我想检索 creditid === 'pppp'.
状态下的所有对象
我创建了一个按 creditid 过滤的函数,但它 returns 一个对象数组。
function getCreditId(obj, key, val) {
return Object.values(obj).filter(x => x[key] === val);
}
我想通过数据[creditid] 过滤状态,这样我就不会创建另一个对象。但不确定如何在执行过滤器时绕过每个对象 ['yyyy'、'aaaa'] 的键。有什么建议吗?
解决它的一种方法是使用 reduce
函数。
var attribute = 'creditid';
var value = 'pppp';
var keys = Object.keys(data);
var result = keys.reduce(function(a, k) {
if (data[k][attribute] === value) {
a.push(data[k]);
}
return a;
}, []);
我的 Vuex 状态中有一个对象的对象,我正在尝试过滤以更新 UI。我无法通过对象中的属性之一过滤对象。我试图避免创建一个临时对象来保存过滤后的数据。
这是我的数据对象:
var data = {
'xxxxx' : {
id: 'xxxxx',
assessed_value: 1900,
creditid: 'zzzzz',
full_value: 100,
population: 200
},
'yyyy' : {
id: 'yyyy',
assessed_value: 2000,
creditid: 'pppp',
full_value: 300,
population: 400
},
'aaaa' : {
id: 'aaaa',
assessed_value: 5000,
creditid: 'pppp',
full_value: 100,
population: 600
}
};
我正在尝试按 creditid 进行过滤。例如,我想检索 creditid === 'pppp'.
状态下的所有对象我创建了一个按 creditid 过滤的函数,但它 returns 一个对象数组。
function getCreditId(obj, key, val) {
return Object.values(obj).filter(x => x[key] === val);
}
我想通过数据[creditid] 过滤状态,这样我就不会创建另一个对象。但不确定如何在执行过滤器时绕过每个对象 ['yyyy'、'aaaa'] 的键。有什么建议吗?
解决它的一种方法是使用 reduce
函数。
var attribute = 'creditid';
var value = 'pppp';
var keys = Object.keys(data);
var result = keys.reduce(function(a, k) {
if (data[k][attribute] === value) {
a.push(data[k]);
}
return a;
}, []);