我被数组,对象和过滤器所困扰。我有以下代码,我想用我的过滤器设置过滤(数组)列表。然后用它做点什么。我正在使用React作为框架。但是我认为这是纯Javascript。
我的方向正确吗?
Enter number of rows of pins: 10
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *
答案 0 :(得分:1)
如果使filterSettings
键与标志值相对应,则可以仅使用filterSettings
值(布尔值)作为过滤器的测试:
let filterSettings = { a: false, b: true, c: true};
let list = [
{flag: 'a', txt: 'some text1'},
{flag: 'a', txt: 'some text2'},
{flag: 'b', txt: 'some text3'},
{flag: 'b', txt: 'some text4'},
{flag: 'c', txt: 'some text5'},
{flag: 'c', txt: 'some text6'},
]
let filtered = list.filter( item => filterSettings[item.flag]) // filterSettings[item.flag] will be a boolean
console.log(filtered)
答案 1 :(得分:0)
创建3个变量a,b,c来处理这三种情况,然后使用filter()
&rest
要获取最终结果,请使用.length属性检查哪个大于0
func1
答案 2 :(得分:0)
您可以使用函数Array.prototype.filter
过滤特定对象,并使用函数Array.prototype.forEach
循环过滤数组。
我假设您不知道函数Array.prototype.map
及其用途,因为您使用的方式将返回带有未定义值的数组
/**********************************************************************
* Get the difference
**********************************************************************/
double actualDifference()
{
double actualDifference = getIncome - (getActualTaxesWithheld
+ getActualTitheOfferings + getActualLivingExpenses
+ getActualOtherExpenses);
}
/**********************************************************************
* Display all the variables
**********************************************************************/
int getDisplay()
{
double income = getIncome();
double budgetedLivingExpenses = getBudgetedLiving();
double actualLivingExpenses = getActualLivingExpenses();
double actualTaxesWithheld = getActualTaxesWithheld();
double actualTitheOfferings = getActualTitheOfferings();
double actualOtherExpenses = getActualOtherExpenses();
double actualDifference;
double zero = 0;
const filterSettings = { a: false, b: true, c: true},
list = [ {flag: 'a', txt: 'some text1'}, {flag: 'a', txt: 'some text2'}, {flag: 'b', txt: 'some text3'}, {flag: 'b', txt: 'some text4'}, {flag: 'c', txt: 'some text5'}, {flag: 'c', txt: 'some text6'}],
handler = ({flag}) => filterSettings[flag];
list.filter(handler).forEach(item=> console.log(item))