依照一个存着新进货物的二维数组,更新存着现有库存(在 arr1
中)的二维数组. 若是货物已存在则更新数量 . 若是没有对应货物则把其加入到数组中,更新最新的数量. 返回当前的库存数组,且按货物名称的字母顺序排列。javascript
思路:java
1.先写个函数,功能是判断该数组是否存在该字符串,存在则返回一个index。git
2.循环遍历第二个数组,若是在第一个数组中存在当前货物名,则把数量相加,若是不存在就push进去。最后别忘了排序,这里能够用charCodeAt来计算,也能够用三目来比大小,如:a[1][0] > b[1][0] ? 1: 0 ;github
let updateInventory = (arr1, arr2) => { arr2.forEach( v => { let i = hasValue(v[1],arr1); i === undefined ? arr1.push(v) : arr1[i][0] += v[0]; }); return arr1.sort((a,b) => a[1].charCodeAt(0) - b[1].charCodeAt(0)); }; let hasValue = (str,arr) => { for(let i in arr){ if(arr[i][1] === str) return i; } }; updateInventory([[21, "Bowling Ball"], [2, "Dirty Sock"], [1, "Hair Pin"], [5, "Microphone"]], [[2, "Hair Pin"], [3, "Half-Eaten Apple"], [67, "Bowling Ball"], [7, "Toothpaste"]]);
若是有不明白的地方请留言,若是有更好更简便更优化的方法请留言,谢谢。数组
更多内容请访问个人我的博客: Bblog函数