Javascript find() 及 filter介紹

find() 函數

早期在搜尋陣列或是資料時,常常會使用:

let foundItem = null;
for(var i = 0; i < cart.length; i++) {
   if(cart[i].id === itemId) {
      foundItem = cart[i];
      break;
   }
}

現在javascript提供find()函數,可以讓使用者快速在陣列中找到需要的資料

let foundItem = cart.find(item => {
   return item.id === itemID
});

// 簡化版
let foundItem = cart.find(item => item.id === itemID

filter() 函數

主要可以將陣列中某些符合條件的元素取出,早期作法為:

let oldCard = [...cart];   // make a copy
cart = [];

for(var i = 0; i < oldCart.length; i++) {
   if(!oldCart[i].outOfStock) {
      cart.push(oldCart[i]);
   }
}

透過filter()函數可以簡化上述程式碼

cart = cart.filter(item => !item.outOfStock)