原文:
app.globalData.saveOrder.orderGoodsDtos.map((v,i)=>{ if(v.goodsvos.length>0){ // 加一個goodNameList,把goodsName追加到列表里 //如果需要把數組對象里的某一項拿出來就追加一個數組,再push進去值 v.goodsNameList=['請選擇'] console.log('vvvvvvvvvvv',v) v.goodsvos.map((g,index)=>{ v.goodsNameList.push(g.goodsName) }) } // 商品規格 this.setData({ 'addproduct':app.globalData.saveOrder.orderGoodsDtos }) })
數組實例的find方法,用於找出第一個符合條件的數組成員。它的參數是一個回調函數,所有數組成員依次執行該回調函數,直到找出第一個返回值為true的成員,然后返回該成員。如果沒有符合條件的成員,則返回undefined。
[1, 4, -5, 10].find((n) => n < 0)
數組實例的findIndex方法的用法與find方法非常類似,返回第一個符合條件的數組成員的位置,如果所有成員都不符合條件,則返回-1。
[1, 5, 10, 15].findIndex(function(value, index, arr) {
return value > 9;
}) // 2
Array.prototype.includes方法返回一個布爾值,表示某個數組是否包含給定的值,與字符串的includes方法類似。該方法屬於ES7,但Babel轉碼器已經支持。
[1, 2, 3].includes(2); // true [1, 2, 3].includes(4); // false [1, 2, NaN].includes(NaN); // true
沒有該方法之前,我們通常使用數組的indexOf方法,檢查是否包含某個值。
if (arr.indexOf(el) !== -1) {
// ...
}
indexOf方法有兩個缺點,一是不夠語義化,它的含義是找到參數值的第一個出現位置,所以要去比較是否不等於-1,表達起來不夠直觀。二是,它內部使用嚴格相當運算符(===)進行判斷,這會導致對NaN的誤判。
[NaN].indexOf(NaN)
