2017-11-11 175 views
2

在一個分量I可使用過濾我陣列以下:Array.filter()在角2組分

// Array of product objects 
const result = products.filter(p => p.name.includes('val')); 

和產品值保持相同的第一個值,但濾波值存儲在result

但在下面的代碼,filter()過濾字符串本身的數組:

// Array of strings 
const result = strs.filter(s => s.includes('val')); 

的問題是我怎麼可以過濾字符串,而無需修改strs本身返回結果?

注:我試過array.filter(function() { return res; });但沒做任何改變。

+0

這'strs.filter(S => s.includes( 'VAL'));'不修改'strs'。過濾器函數返回一個新數組,其中您在過濾器函數中傳遞的謂詞爲true。 – Christos

+0

你的代碼很好,可能有一些錯字 – Niladri

回答

1

它返回過濾後的數據,不改變實際數組。你正在做的事情錯

const strs = ['valval', 'bal', 'gal', 'dalval']; 
 
const result = strs.filter(s => s.includes('val')); 
 

 
console.log(strs); 
 
console.log(result);

+0

是的,你說得對,問題是因爲一個對象包含另一個對象的數組。我改變了我對過濾方式的看法,並且它正常工作。謝謝 – Hooman