JavaScriptの組み込み関数による最適化
あるプログラマーが、配列内に数字3が存在するか
チェックしているとします:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
let exists = false;
for (let elem of arr) {
if (elem === 3) {
exists = true;
break;
}
}
console.log(exists);
このコードには何か問題があると私は主張します。
数字3を見つけた後にループを抜けているのに、
何が問題なのでしょうか? 問題は、
JavaScriptに組み込まれた関数は、同等の自作コードよりも
常に高速に動作するという点にあります。
このケースでは、目的のタスクを解決する関数
includesが存在します。そして、使用すべきなのは
まさにこの関数なのです:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(arr.includes(3));
教訓:タスクを解決する前に、JavaScriptに組み込みの関数が 存在しないか必ず確認してください。
次のコードは、文字列が 'http' で
始まるかどうかをチェックしています。
最適化を実行してください:
let str = 'http://code.mu';
if (str[0] + str[1] + str[2] + str[3] === 'http') {
console.log('+++');
} else {
console.log('---');
}
次のコードは、配列を指定された値で 埋めます。 最適化を実行してください:
let arr = fillArr('x', 5);
console.log(arr);
function fillArr(val, amount) {
let arr = [];
for (let i = 1; i <= amount; i++) {
arr.push(val);
}
return arr;
}