im思维创建了输入的所有定义并捕获了基于值的对象,但我的定义是这样做
let inputs: FormBase<any>[] = [
new InputTextForm({
key: 'Id',
label: 'Id',
value: '',
required: true,
order: 1
}),
new InputTextForm({
key: 'Nome',
label: 'Nome',
value: '',
required: true,
order: 2
}),
new InputTextForm({
key: 'Descricao',
label: 'Descricao',
order: 3
}),
new InputTextForm({
key: 'PodeFracionar',
label: 'Pode Fracionar',
order: 4
}),
new InputTextForm({
key: 'TaxaPis',
label: 'Taxa Pis',
order: 5
}),
];
return inputs.sort((a, b) => a.order - b.order);
}
但是所有对象的名称是InputTextForm,我将需要基于键的过滤器。但是如何按键过滤一个InputTextForm并将其推入其他数组过滤?
答案 0 :(得分:2)
您是否已经尝试过遍历数组并在每次迭代时检查key
属性的值?
Lodash的_.forEach()方法非常有用。您可以遍历一个对象:
_.forEach(someObject, function(value,key) { /* some function */})
或者您可以遍历数组:
_.forEach(someArray, function(value) { if (value.key == 'someVal') {/*code*/}})
然后在forEach循环中,您可以检查您的值,如果它们匹配,则推入另一个数组。
答案 1 :(得分:2)
您不必使用 lodash ,这里的数组对象具有filter方法也可以做到这一点,您可以考虑使用本机javascript函数,然后向您的项目注入新的依赖项,从而使结果相同
let result = inputs.filter(i => i.key === 'TaxaPis') ;
console.log(result); // => [{key: 'TaxaPis', label: 'Taxa Pis', order: 5}]