JavaScript 數組常見的算法問題包括排序、查找、去重等。
排序是數組常用的操作之一,通常可以使用 sort 函數來實現數組排序。例如:
var arr = [3,1,5,2,4]; arr.sort(function(a,b) { return a-b; }); console.log(arr); //輸出 [1, 2, 3, 4, 5]
查找是另一個常見的問題,可以使用 indexOf 或 find 函數來實現。如果需要查找符合條件的所有元素,可以使用 filter 函數。例如:
var arr = ['apple', 'banana', 'orange', 'pear']; var index = arr.indexOf('banana'); console.log(index); //輸出 1 var fruit = arr.find(function(item) { return item.length >5; }); console.log(fruit); //輸出 'orange' var fruits = arr.filter(function(item) { return item.length >5; }); console.log(fruits); //輸出 ['banana', 'orange']
去重也是常見的問題,可以使用循環或 set 數據結構來實現。例如:
var arr = [1,2,2,3,3,3,4,4,4,4]; var result = []; for (var i = 0; i< arr.length; i++) { if (result.indexOf(arr[i]) === -1) { result.push(arr[i]); } } console.log(result); //輸出 [1, 2, 3, 4] var arr2 = [1,2,2,3,3,3,4,4,4,4]; var set = new Set(arr2); var result2 = Array.from(set); console.log(result2); //輸出 [1, 2, 3, 4]
除此之外,JavaScript 數組還有很多其他的算法問題,例如最大值、最小值、求和、平均值等等。這些問題通常都可以使用 reduce 函數來實現。
var arr = [5,3,2,1,4]; var max = arr.reduce(function(pre, cur) { return pre >cur ? pre : cur; }); console.log(max); //輸出 5 var min = arr.reduce(function(pre, cur) { return pre< cur ? pre : cur; }); console.log(min); //輸出 1 var sum = arr.reduce(function(pre, cur) { return pre + cur; }); console.log(sum); //輸出 15 var avg = sum / arr.length; console.log(avg); //輸出 3
綜上所述,JavaScript 數組算法是非常重要的一部分,掌握常見的算法技能可以幫助我們更好地操作數組數據。