เชเซเชฏเชพเชฐเซ เชนเซเช เชเชฒเซเชเซเชฐเชฟเชงเชฎเซเชธเชจเชพ เชชเซเชฐเชฆเชฐเซเชถเชจเชจเซ เช
เชญเซเชฏเชพเชธ เชเชฐเซ เชฐเชนเซเชฏเซ เชนเชคเซ, เชคเซเชฏเชพเชฐเซ เชฎเชจเซ เช เชฎเชณเซเชฏเซเช
เช เชฒเซเช เช เชตเชฟเชกเซเชฏเซเชจเซ เชเช เชชเซเชฐเชเชพเชฐเชจเซ เชธเชพเชฅ เชเซ. เชคเซเชฎเชพเช เชนเซเช เชฆเชฐเซเชถเชพเชตเซเชฒ เชคเชฎเชพเชฎ เชธเซเชฒเซเชฏเซเชถเชจเซเชธ เช
เชจเซ JavaScript เชฎเชพเช เชธเซเชฒเซเชฏเซเชถเชจเชจเชพ เชฎเชพเชฐเชพ เชชเซเชคเชพเชจเชพ เชธเชเชธเซเชเชฐเชฃ เชชเชฐ เชเชฟเชชเซเชชเชฃเซเช เชชเซเชฐเชฆเชพเชจ เชเชฐเซเช เชเซเช. เชฆเชฐเซเช เช
เชฒเซเชเซเชฐเชฟเชงเชฎเชจเซ เชเซเชเชเชพเชเชจเซ เชชเชฃ เชเชฐเซเชเชพ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เช เชฎเซ เชฏเชพเชฆ เชเชฐเชพเชตเซเช เชเซเช: Habrเชจเชพ เชคเชฎเชพเชฎ เชตเชพเชเชเซ เชฎเชพเชเซ - Habr เชชเซเชฐเซเชฎเซ เชเซเชกเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซเชเชชเชฃ เชธเซเชเชฟเชฒเชฌเซเชเซเชธ เชเซเชฐเซเชธเชฎเชพเช เชจเซเชเชงเชฃเซ เชเชฐเชคเซ เชตเชเชคเซ 10 เชฐเซเชฌเชฒ เชกเชฟเชธเซเชเชพเชเชจเซเช.
เชธเซเชเชฟเชฒเชฌเซเชเซเชธ เชญเชฒเชพเชฎเชฃ เชเชฐเซ เชเซ: เชชเซเชฐเซเชเซเชเชฟเชเชฒ เชเซเชฐเซเชธ
"เชฎเซเชฌเชพเชเชฒ เชกเซเชตเชฒเชชเชฐ เชชเซเชฐเซ" .
เชธเชฎเชธเซเชฏเชพเชจเซ เชฐเชเชจเชพ
เช เชฎเชจเซ เชเชฐเซเชกเชฐ เชเชฐเซเชฒ เชเชฐเซ เช เชจเซ เชเซเชเซเชเชธ เชฎเซเชฒเซเชฏ เชเชชเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชชเชเซ เชคเซเชจเซ เชเช เชซเชเชเซเชถเชจ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ เชเชนเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซ เชเชฐเซเชฎเชพเช เชเซเชเชชเชฃ เชฌเซ เชธเชเชเซเชฏเชพเชเชจเซ เชธเชฐเชตเชพเชณเซ เชเชชเซเชฒ เชฎเซเชฒเซเชฏ เชธเชฎเชพเชจ เชนเซเช เชถเชเซ เชเซ เชเซ เชเซเชฎ เชคเซเชจเชพ เชเชงเชพเชฐเซ เชธเชพเชเซเช เชเซ เชเซเชเซเช เชชเชฐเชค เชเชฐเซ เชเซ.
เชฌเซเชเชพ เชถเชฌเซเชฆเซเชฎเชพเช เชเชนเซเช เชคเซ, เชถเซเช เชเชฐเซเชฎเชพเช เชฌเซ เชชเซเชฐเซเชฃเชพเชเชเซ เชเซ, x เช เชจเซ y, เชเซ เชเซเชฏเชพเชฐเซ เชเชเชธเชพเชฅเซ เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซ เชคเซเชฏเชพเชฐเซ เชจเชฟเชฐเซเชฆเชฟเชทเซเช เชฎเซเชฒเซเชฏ เชธเชฎเชพเชจ เชนเซเชฏ?
เชเชฆเชพเชนเชฐเชฃ เช
เชเซ เชเชชเชฃเชจเซ เชเชฐเซ [1, 2, 4, 9] เชเชชเชตเชพเชฎเชพเช เชเชตเซ เช เชจเซ เชฎเซเชฒเซเชฏ 8 เชนเซเชฏ, เชคเซ เชซเชเชเซเชถเชจ เชซเซเชฒเซเชธ เชเชชเชถเซ เชเชพเชฐเชฃ เชเซ เชเชฐเซเชฎเชพเช เชเซเช เชฌเซ เชธเชเชเซเชฏเชพ 8 เชธเซเชงเซ เชเชฎเซเชฐเซ เชถเชเชคเซ เชจเชฅเซ.
เชเชฆเชพเชนเชฐเชฃ เชฌเซ
เชชเชฐเชเชคเซ เชเซ เชคเซ เชเชฐเซ [1, 2, 4, 4] เชเซ เช เชจเซ เชฎเซเชฒเซเชฏ 8 เชเซ, เชคเซ เชซเชเชเซเชถเชจ เชธเชพเชเซเช เชเชตเชตเซเช เชเซเชเช เชเชพเชฐเชฃ เชเซ 4 + 4 = 8.
เชเชเซเชฒ 1: เชฌเซเชฐเซเช เชซเซเชฐเซเชธ
เชธเชฎเชฏ เชเชเชฟเชฒเชคเชพ: O(Nยฒ).
เชเชเซเชฏเชพ เชเชเชฟเชฒเชคเชพ: O(1).
เชธเซเชฅเซ เชธเซเชชเชทเซเช เช เชฐเซเชฅ เช เชเซ เชเซ เชจเซเชธเซเชเซเชก เชฒเซเชชเซเชธเชจเซ เชเซเชกเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ.
const findSum = (arr, val) => {
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length; j++) {
if (i !== j && arr[i] + arr[j] === val) {
return true;
};
};
};
return false;
};
เช เชเชเซเชฒ เชเชพเชฐเซเชฏเชเซเชทเชฎ เชจเชฅเซ เชเชพเชฐเชฃ เชเซ เชคเซ เชเชฐเซเชฎเชพเช เชฌเซ เชเชเชเซเชจเชพ เชฆเชฐเซเช เชธเชเชญเชตเชฟเชค เชธเชฐเชตเชพเชณเชพเชจเซ เชคเชชเชพเชธเซ เชเซ เช เชจเซ เชธเซเชเชเชพเชเชเซเชจเซ เชฆเชฐเซเช เชเซเชกเซเชจเซ เชฌเซ เชตเชพเชฐ เชธเชฐเชเชพเชตเซ เชเซ. (เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเซเชฏเชพเชฐเซ i = 1 เช เชจเซ j = 2 เช เชเชฐเซเชเชฐ i = 2 เช เชจเซ j = 1 เชธเชพเชฅเซ เชธเชฐเชเชพเชฎเชฃเซ เชเชฐเชตเชพ เชเซเชตเซเช เช เชเซ, เชชเชฐเชเชคเซ เช เชเชเซเชฒเชฎเชพเช เชเชชเชฃเซ เชฌเชเชจเซ เชตเชฟเชเชฒเซเชชเซ เช เชเชฎเชพเชตเซเช เชเซเช).
เชเชพเชฐเชฃ เชเซ เช เชฎเชพเชฐเซเช เชธเซเชฒเซเชฏเซเชถเชจ เชฒเซเชชเซเชธ เชฎเชพเชเซ เชจเซเชธเซเชเซเชกเชจเซ เชเซเชกเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ, เชคเซ O(Nยฒ) เชธเชฎเชฏ เชเชเชฟเชฒเชคเชพ เชธเชพเชฅเซ เชเชคเซเชฐเซเชญเซเช เชเซ.
เชเชเซเชฒ 2: เชฌเชพเชเชจเชฐเซ เชถเซเชง
เชธเชฎเชฏ เชเชเชฟเชฒเชคเชพ: O(Nlog(N)).
เช
เชตเชเชพเชถ เชเชเชฟเชฒเชคเชพ: O(1).
เชเชฐเซ เชเชฐเซเชกเชฐ เชเชฐเซเชฒ เชนเซเชตเชพเชฅเซ, เชเชชเชฃเซ เชฌเชพเชเชจเชฐเซ เชถเซเชงเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชเซเชฒ เชถเซเชงเซ เชถเชเซเช เชเซเช. เชเชฐเซเชกเชฐ เชเชฐเซเชฒ เชเชฐเซ เชฎเชพเชเซ เช เชธเซเชฅเซ เชเชพเชฐเซเชฏเชเซเชทเชฎ เช เชฒเซเชเซเชฐเชฟเชงเชฎ เชเซ. เชฆเซเชตเชฟเชธเชเชเซ เชถเซเชงเชฎเชพเช O(log(N)) เชจเซ เชเชพเชฒเชคเซ เชธเชฎเชฏ เชนเซเชฏ เชเซ. เชเซ เชเซ, เชคเชฎเชพเชฐเซ เชนเชเซ เชชเชฃ เช เชจเซเชฏ เชคเชฎเชพเชฎ เชฎเซเชฒเซเชฏเซ เชธเชพเชฎเซ เชฆเชฐเซเช เชคเชคเซเชตเชจเซ เชคเชชเชพเชธเชตเชพ เชฎเชพเชเซ เชฒเซเชชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เชเชเซเชฒ เชเซเชตเซ เชฆเซเชเชพเช เชถเชเซ เชคเซ เช เชนเซเช เชเซ. เชตเชธเซเชคเซเช เชธเซเชชเชทเซเช เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชฌเชพเชเชจเชฐเซ เชถเซเชงเชจเซ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชเช เช เชฒเช เชเชพเชฐเซเชฏเชจเซ เชเชชเชฏเซเช เชเชฐเซเช เชเซเช. เช เชจเซ removeIndex() เชซเชเชเซเชถเชจ เชชเชฃ, เชเซ เชเชชเซเชฒ เชเชจเซเชกเซเชเซเชธเชจเซ เชฌเชพเชฆ เชเชฐเชคเชพ เชเชฐเซเชจเซเช เชตเชฐเซเชเชจ เชชเชฐเชค เชเชฐเซ เชเซ.
const findSum = (arr, val) => {
for (let i = 0; i < arr.length; i++){
if (binarySearch(removeIndex(arr, i), val - arr[i])) {
return true;
}
};
return false;
};
const removeIndex = (arr, i) => {
return arr.slice(0, i).concat(arr.slice(i + 1, arr.length));
};
const binarySearch = (arr, val) => {
let start = 0;
let end = arr.length - 1;
let pivot = Math.floor(arr.length / 2);
while (start < end) {
if (val < arr[pivot]) {
end = pivot - 1;
} else if (val > arr[pivot]) {
start = pivot + 1;
};
pivot = Math.floor((start + end) / 2);
if (arr[pivot] === val) {
return true;
}
};
return false;
};
เช เชฒเซเชเซเชฐเชฟเชงเชฎ เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพ [0] เชฅเซ เชถเชฐเซ เชฅเชพเชฏ เชเซ. เชคเซ เชชเชเซ เชชเซเชฐเชฅเชฎ เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพเชจเซ เชฌเชพเชฆ เชเชฐเชคเชพเช เชเชฐเซเชจเซเช เชธเชเชธเซเชเชฐเชฃ เชฌเชจเชพเชตเซ เชเซ เช เชจเซ เชเชเซเชเชฟเชค เชฐเชเชฎ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ เชเชฐเซเชฎเชพเช เชฌเชพเชเซเชจเชพ เชเซเชเชชเชฃ เชฎเซเชฒเซเชฏเซ เชเชฎเซเชฐเซ เชถเชเชพเชฏ เชเซ เชเซ เชเซเชฎ เชคเซ เชเซเชตเชพ เชฎเชพเชเซ เชฌเชพเชเชจเชฐเซ เชถเซเชงเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ. เช เชเซเชฐเชฟเชฏเชพ เชเชฐเซเชฎเชพเชเชจเชพ เชฆเชฐเซเช เชคเชคเซเชต เชฎเชพเชเซ เชเชเชตเชพเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชซเซเชฐ เชฒเซเชชเชฎเชพเช เช O(N) เชจเซ เชฐเซเชเซเชฏ เชธเชฎเชฏ เชเชเชฟเชฒเชคเชพ เชนเชถเซ, เชชเชฐเชเชคเซ เชซเซเชฐ เชฒเซเชชเชจเซ เช เชเชฆเชฐ เชเชชเชฃเซ เชฌเชพเชเชจเชฐเซ เชถเซเชง เชเชฐเซเช เชเซเช, เชเซ O(Nlog(N)) เชจเซ เชเชเชเชฆเชฐ เชธเชฎเชฏ เชเชเชฟเชฒเชคเชพ เชเชชเซ เชเซ. เช เชธเซเชฒเซเชฏเซเชถเชจ เชชเชพเชเชฒเชพ เชเช เชเชฐเชคเชพ เชตเชงเซ เชธเชพเชฐเซเช เชเซ, เชชเชฐเชเชคเซ เชนเชเซ เชชเชฃ เชธเซเชงเชพเชฐเชพ เชฎเชพเชเซ เช เชตเชเชพเชถ เชเซ.
เชเชเซเชฒ 3: เชฐเซเชเซเชฏ เชธเชฎเชฏ
เชธเชฎเชฏ เชเชเชฟเชฒเชคเชพ: O(N).
เชเชเซเชฏเชพ เชเชเชฟเชฒเชคเชพ: O(1).
เชนเชตเซ เชเชชเชฃเซ เชธเชฎเชธเซเชฏเชพ เชนเชฒ เชเชฐเซเชถเซเช, เชฏเชพเชฆ เชฐเชพเชเซเชจเซ เชเซ เชเชฐเซ เชธเซเชฐเซเช เชฅเชฏเซเชฒ เชเซ. เชเชเซเชฒ เชฌเซ เชจเชเชฌเชฐเซ เชฒเซเชตเชพเชจเซ เชเซ: เชเช เชถเชฐเซเชเชคเชฎเชพเช เช เชจเซ เชเช เช เชเชคเชฎเชพเช. เชเซ เชชเชฐเชฟเชฃเชพเชฎ เชเชตเชถเซเชฏเช เชเชฐเชคเชพเช เช เชฒเช เชนเซเชฏ, เชคเซ เชชเชเซ เชชเซเชฐเชพเชฐเชเชญเชฟเช เช เชจเซ เช เชเชคเชฟเชฎ เชฌเชฟเชเชฆเซเช เชฌเชฆเชฒเซ.
เชเชเชฐเซ เชเชชเชฃเซ เชเชพเช เชคเซ เชเชเซเชเชฟเชค เชฎเซเชฒเซเชฏเชจเซ เชธเชพเชฎเชจเซ เชเชฐเซเชถเซเช เช เชจเซ เชธเชพเชเซเช เชชเชฐเชค เชเชฐเซเชถเซเช, เช เชฅเชตเชพ เชถเชฐเซเชเชค เช เชจเซ เช เชเชคเชฟเชฎ เชฌเชฟเชเชฆเซเช เชญเซเชเชพ เชฅเชถเซ เช เชจเซ เชเซเชเชพ เชชเชพเชเชพ เชเชตเชถเซ.
const findSum = (arr, val) => {
let start = 0;
let end = arr.length - 1;
while (start < end) {
let sum = arr[start] + arr[end];
if (sum > val) {
end -= 1;
} else if (sum < val) {
start += 1;
} else {
return true;
};
};
return false;
};
เชนเชตเซ เชฌเชงเซเช เชธเชพเชฐเซเช เชเซ, เชเชเซเชฒ เชถเซเชฐเซเชทเซเช เชฒเชพเชเซ เชเซ. เชชเชฐเชเชคเซ เชเซเชฃ เชฌเชพเชเชนเซเชงเชฐเซ เชเชชเซ เชถเชเซ เชเซ เชเชฐเซ เชเชฐเซเชกเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ?
เชชเชเซ เชถเซเช?
เชชเซเชฐเชฅเชฎ เชจเชเชฐเชฎเชพเช, เช เชฎเซ เชชเซเชฐเชฅเชฎ เชเชฐเซเชจเซ เชเชฐเซเชกเชฐ เชเชชเซ เชถเชเซเชฏเชพ เชนเซเชค เช เชจเซ เชชเชเซ เชเชชเชฐเชจเชพ เชเชเซเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ เชนเซเชค. เชชเชฐเชเชคเซ เช เช เชฎเชฒเชจเชพ เชธเชฎเชฏเชจเซ เชเซเชตเซ เชฐเซเชคเซ เช เชธเชฐ เชเชฐเชถเซ?
เชถเซเชฐเซเชทเซเช เช เชฒเซเชเซเชฐเชฟเชงเชฎ เชธเชฎเชฏ เชเชเชฟเชฒเชคเชพ O (Nlog (N)) เชธเชพเชฅเซ เชเซเชตเชฟเชเชธเซเชฐเซเช เชเซ. เชเซ เชเชชเชฃเซ เชคเซเชจเซ เช เชฎเชพเชฐเชพ เชถเซเชฐเซเชทเซเช เชเชเซเชฒเชฎเชพเช เชเชชเชฏเซเช เชเชฐเซเช, เชคเซ เชคเซ เชคเซเชจเชพ เชชเซเชฐเชฆเชฐเซเชถเชจเชจเซ O(N) เชฅเซ O(Nlog(N)) เชฎเชพเช เชฌเชฆเชฒเชถเซ. เชถเซเช เชฌเชฟเชจเชเซเชฐเชฎเชพเชเชเชฟเชค เชเชฐเซ เชธเชพเชฅเซ เชฐเซเชเซเชฏ เชเชเซเชฒ เชถเซเชงเชตเชพเชจเซเช เชถเชเซเชฏ เชเซ?
4 เชธเซเชฒเซเชฏเซเชถเชจ
เชธเชฎเชฏ เชเชเชฟเชฒเชคเชพ: O(N).
เชเชเซเชฏเชพ เชเชเชฟเชฒเชคเชพ: O(N).
เชนเชพ, เชเช เชฒเซเชจเชฟเชฏเชฐ เชธเซเชฒเซเชฏเซเชถเชจ เชเซ; เช เชเชฐเชตเชพ เชฎเชพเชเซ, เชเชชเชฃเซ เชเซ เชฎเซเช เชถเซเชงเซ เชฐเชนเซเชฏเชพ เชเซเช เชคเซเชจเซ เชฏเชพเชฆเซ เชงเชฐเชพเชตเชคเซ เชจเชตเซ เชเชฐเซ เชฌเชจเชพเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เช เชนเซเช เชเซเชฐเซเชก-เชเชซ เชตเชงเซ เชฎเซเชฎเชฐเซ เชตเชชเชฐเชพเชถ เชเซ: เชเชพเชเชณเชฎเชพเช O(1) เชเชฐเชคเชพเช เชตเชงเซ เชเชเซเชฏเชพ เชเชเชฟเชฒเชคเชพ เชธเชพเชฅเซ เชคเซ เชเชเชฎเชพเชคเซเชฐ เชเชเซเชฒ เชเซ.
เชเซ เชเชชเซเชฒ เชเชฐเซเชจเซ เชชเซเชฐเชฅเชฎ เชเชฟเชเชฎเชค 1 เชเซ เช เชจเซ เชถเซเชง เชฎเซเชฒเซเชฏ 8 เชเซ, เชคเซ เชเชชเชฃเซ "เชถเซเชง เชฎเซเชฒเซเชฏเซ" เชเชฐเซเชฎเชพเช เชฎเซเชฒเซเชฏ 7 เชเชฎเซเชฐเซ เชถเชเซเช เชเซเช.
เชชเชเซ, เชเซเชฎ เชเซเชฎ เชเชชเชฃเซ เชเชฐเซเชจเชพ เชฆเชฐเซเช เชเชเช เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซเช เชเซเช, เชคเซเชฎ เชเชชเชฃเซ "เชธเชฐเซเช เชตเซเชฒเซเชฏเซเช" เชจเซ เชเชฐเซ เชคเชชเชพเชธเซ เชถเชเซเช เชเซเช เช เชจเซ เชเซเช เชถเชเซเช เชเซเช เชเซ เชคเซเชฎเชพเชเชฅเซ เชเช เชเชชเชฃเชพ เชฎเซเชฒเซเชฏเชจเซ เชฌเชฐเชพเชฌเชฐ เชเซ เชเซ เชจเชนเซเช. เชเซ เชนเชพ, เชคเซ เชธเชพเชเซเช เชชเชฐเชค เชเชฐเซ.
const findSum = (arr, val) => {
let searchValues = [val - arr[0]];
for (let i = 1; i < arr.length; i++) {
let searchVal = val - arr[i];
if (searchValues.includes(arr[i])) {
return true;
} else {
searchValues.push(searchVal);
}
};
return false;
};
เชธเซเชฒเซเชฏเซเชถเชจเชจเซ เชเชงเชพเชฐ เช เชซเซเชฐ เชฒเซเชช เชเซ, เชเซ เชเชชเชฃเซ เชเชชเชฐ เชเซเชฏเซเช เชคเซเชฎ, O(N) เชจเซ เชฐเซเชเซเชฏ เชธเชฎเชฏ เชเชเชฟเชฒเชคเชพ เชงเชฐเชพเชตเซ เชเซ.
เช เชฎเชพเชฐเชพ เชซเชเชเซเชถเชจเชจเซ เชฌเซเชเซ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชญเชพเช เชเซ Array.prototype.include(), เชเช JavaScript เชชเชฆเซเชงเชคเชฟ เชเซ เชเซ เช เชฐเซ เชเชชเซเชฒ เชฎเซเชฒเซเชฏ เชงเชฐเชพเชตเซ เชเซ เชคเซเชจเชพ เชเชงเชพเชฐเซ เชธเชพเชเซเช เชเซ เชเซเชเซเช เชชเชฐเชค เชเชฐเชถเซ.
Array.prototype.includes() เชจเซ เชธเชฎเชฏ เชเชเชฟเชฒเชคเชพ เชเชพเชฃเชตเชพ เชฎเชพเชเซ, เช เชฎเซ MDN (เช เชจเซ JavaScript เชฎเชพเช เชฒเชเชพเชฏเซเชฒ) เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชฆเชพเชจ เชเชฐเซเชฒ เชชเซเชฒเซเชซเชฟเชฒ เชเซเช เชถเชเซเช เชเซเช เช เชฅเชตเชพ Google V8 (C++) เชเซเชตเชพ JavaScript เชเชจเซเชเชฟเชจเชจเชพ เชธเซเชคเซเชฐเซเชค เชเซเชกเชฎเชพเช เชชเชฆเซเชงเชคเชฟเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซเช เชเซเช.
// https://tc39.github.io/ecma262/#sec-array.prototype.includes
if (!Array.prototype.includes) {
Object.defineProperty(Array.prototype, 'includes', {
value: function(valueToFind, fromIndex) {
if (this == null) {
throw new TypeError('"this" is null or not defined');
}
// 1. Let O be ? ToObject(this value).
var o = Object(this);
// 2. Let len be ? ToLength(? Get(O, "length")).
var len = o.length >>> 0;
// 3. If len is 0, return false.
if (len === 0) {
return false;
}
// 4. Let n be ? ToInteger(fromIndex).
// (If fromIndex is undefined, this step produces the value 0.)
var n = fromIndex | 0;
// 5. If n โฅ 0, then
// a. Let k be n.
// 6. Else n < 0,
// a. Let k be len + n.
// b. If k < 0, let k be 0.
var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
function sameValueZero(x, y) {
return x === y || (typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y));
}
// 7. Repeat, while k < len
while (k < len) {
// a. Let elementK be the result of ? Get(O, ! ToString(k)).
// b. If SameValueZero(valueToFind, elementK) is true, return true.
if (sameValueZero(o[k], valueToFind)) {
return true;
}
// c. Increase k by 1.
k++;
}
// 8. Return false
return false;
}
});
}
เช เชนเซเช Array.prototype.include() เชจเซ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชญเชพเช เชธเซเชเซเชช 7 เชฎเชพเช เชเซเชฏเชพเชฐเซ เชฒเซเชช เชเซ เชเซ (เชฒเชเชญเช) เชเชชเซเชฒ เชเชฐเซเชจเซ เชธเชฎเชเซเชฐ เชฒเชเชฌเชพเชเชจเซ เชชเชพเชฐ เชเชฐเซ เชเซ. เชฎเชคเชฒเชฌ เชเซ เชคเซเชจเซ เชธเชฎเชฏเชจเซ เชเชเชฟเชฒเชคเชพ เชชเชฃ เชฐเซเชเซเชฏ เชเซ. เช เซเช เชเซ, เชเชพเชฐเชฃ เชเซ เชคเซ เชนเชเชฎเซเชถเชพ เช เชฎเชพเชฐเชพ เชฎเซเชเซเชฏ เชเชฐเซ เชชเชพเชเชณ เชเช เชชเชเชฒเซเช เชเซ, เชธเชฎเชฏ เชเชเชฟเชฒเชคเชพ O (N + (N - 1)) เชเซ. Big O เชจเซเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ, เช เชฎเซ เชคเซเชจเซ O(N) เชฎเชพเช เชธเชฐเชณ เชฌเชจเชพเชตเซเช เชเซเช - เชเชพเชฐเชฃ เชเซ เชคเซ N เชเซ เชเซ เชเชจเชชเซเช เชเชฆเชฎเชพเช เชตเชงเชพเชฐเซ เชเชฐเชคเซ เชตเชเชคเซ เชธเซเชฅเซ เชตเชงเซ เช เชธเชฐ เชเชฐเซ เชเซ.
เช เชตเชเชพเชถเซ เชเชเชฟเชฒเชคเชพ เช เชเชเซ, เชตเชงเชพเชฐเชพเชจเซ เชเชฐเซเชจเซ เชเชฐเซเชฐ เชเซ เชเซเชจเซ เชฒเชเชฌเชพเช เชฎเซเชณ เชเชฐเซเชจเซ เชชเซเชฐเชคเชฟเชฌเชฟเชเชฌเชฟเชค เชเชฐเซ เชเซ (เชฎเชพเชเชจเชธ เชตเชจ, เชนเชพ, เชชเชฐเชเชคเซ เชคเซเชจเซ เช เชตเชเชฃเซ เชถเชเชพเชฏ เชเซ), เชชเชฐเชฟเชฃเชพเชฎเซ O(N) เช เชตเชเชพเชถเซ เชเชเชฟเชฒเชคเชพ. เช เซเช เชเซ, เชฎเซเชฎเชฐเซเชจเซ เชตเชงเชพเชฐเซ เชเชฒเซเชเซเชฐเชฟเชงเชฎเชจเซ เชฎเชนเชคเซเชคเชฎ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพเชจเซ เชธเซเชจเชฟเชถเซเชเชฟเชค เชเชฐเซ เชเซ.
เชนเซเช เชเชถเชพ เชฐเชพเชเซเช เชเซเช เชเซ เชคเชฎเชจเซ เชคเชฎเชพเชฐเชพ เชตเชฟเชกเชฟเช เชเชจเซเชเชฐเชตเซเชฏเซเชจเชพ เชชเซเชฐเช เชคเชฐเซเชเซ เชฒเซเช เชเชชเชฏเซเชเซ เชฒเชพเชเชถเซ. เชคเซ เชฌเชคเชพเชตเซ เชเซ เชเซ เชเชชเชฏเซเชเชฎเชพเช เชฒเซเชตเชพเชคเชพ เชตเชฟเชตเชฟเชง เชธเชเชธเชพเชงเชจเซ (เชธเชฎเชฏ, เชฎเซเชฎเชฐเซ) เชตเชกเซ เชเช เชธเชฐเชณ เชธเชฎเชธเซเชฏเชพเชจเซ เชตเชฟเชตเชฟเชง เชฐเซเชคเซ เชเชเซเชฒเซ เชถเชเชพเชฏ เชเซ.
เชธเซเชเชฟเชฒเชฌเซเชเซเชธ เชญเชฒเชพเชฎเชฃ เชเชฐเซ เชเซ:
- เชเชจเชฒเชพเชเชจ เชเซเชฐเซเชธ เชฒเชพเชเซ เชเชฐเซเชฏเซ
"เชชเชพเชฏเชฅเซเชจ เชกเซเชเชพ เชเชจเชพเชฒเชฟเชธเซเช" .- เชเชจเชฒเชพเชเชจ เชเซเชฐเซเชธ
"เชชเซเชฐเซเชซเซเชถเชจ เชซเซเชฐเชจเซเช เชเชจเซเชก เชกเซเชตเชฒเชชเชฐ" .- เชเช เชตเชฐเซเชทเชจเซ เชชเซเชฐเซเชเซเชเชฟเชเชฒ เชเซเชฐเซเชธ
"0 เชฅเซ PRO เชธเซเชงเซ PHP เชตเชฟเชเชพเชธเชเชฐเซเชคเชพ" .
เชธเซเชฐเซเชธ: www.habr.com