本篇搭配 LeetCode 1.Two Sum
Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].
Input: nums = [3,2,4], target = 6
Output: [1,2]
Input: nums = [3,3], target = 6
Output: [0,1]
Array.indexOf('keyword')
檢查陣列裡的元素索引值。
輸出:索引值
(元素的位置0/1/2...),找不到結果回傳-1
var twoSum = function(nums, target) {
for (let i = 0 ; i < nums.length ; i++) {
const secondNum = target - nums[i];
if (nums.indexOf(secondNum) > -1){
return [i , nums.indexOf(secondNum)];
} else{
i++
}
}
};
Array.includes('keyword')
檢查陣列裡是否包含元素。
輸出:布林值
,找得到回傳true
;找不到則回傳false
var twoSum = function(nums, target) {
for (let i = 0 ; i < nums.length ; i++) {
const secondNum = target - nums[i];
if (nums.includes(secondNum)){
return [i , nums.indexOf(secondNum)];
} else{
i++
}
}
};
使用箭頭函示檢查陣列中每個內容是否符合條件。
輸出:第一個符合條件的值;否則返回undefined
。
let age = [21, 43, 23, 1, 34, 12, 8];
console.log(age.find(i => i > 20));
console.log(age.find(i => i > 21))
// output
21
43
如同 find(),使用箭頭函示檢查陣列中每個內容是否符合條件。
輸出:陣列,包含符合條件的所有值;否則返回空陣列[]
let age = [21, 43, 23, 1, 34, 12, 8];
console.log(age.filter(i => i > 20));
console.log(age.filter(i => i > 21));
// output
[21, 43, 23, 34]
[43, 23, 34]
參考來源:
https://www.delftstack.com/zh-tw/howto/javascript/javascript-array-contains/