Trouble with chaining filters

I have some code similar to the following.

	let f1 = 'name';	//database field 
	let f2 = 'city';    //database field 
	let f3 = 'state';   //database field 

	let ds = '#dataset1'; 
	let k = 'washington'; 

	let newFilter = wixData.filter(); 
	newFilter = newFilter.contains(f1, k) 
		.or(newFilter.contains(f2, k)) 
		.or(newFilter.contains(f3, k)); 
	$w(ds).setFilter(newFilter); 

The above code works. But I want to make the number of database fields arbitrary
by doing something like this.

	let f = ['name', 'city', 'county', 'state', 'country']; 

	let secondFilter = wixData.filter(); 
	newFilter = newFilter.contains(f[0], k); 
	for(let i=1; i<f.length; i++) 
		newFilter = newFilter.or(secondFilter.contains(f[i],k)); 
	$w(ds).setFilter(newFilter); 

This does not seem to work. What am I doing wrong here?

Ignore it please.
Fixed it as follows and it works.

let newFilter = wixData.filter();
newFilter = newFilter.contains(f[ 0 ], k);
for ( let i = 1 ; i < f.length; i++) {
let secondFilter = wixData.filter().contains(f[i], k);
newFilter = newFilter.or(secondFilter);
}