🍍
配列の重複問題2
2つの数値が入った配列で、重複した数値を取り出す
const list1 = [2, 43, 48, 62, 64, 28, 3];
const list2 = [1, 28, 42, 70, 2, 10, 62, 31, 4, 14];
step1. 配列をループして、展開する(どちらか一つ)
step2. 関数を定義する
step3. set1を作成する
step4. 関数の引数を2つにする
step5 重複しているものを格納する変数を用意する
step6. arr2をループして、set1にそれが存在する場合は、重複する変数に格納する
step7. 重複する変数を返す
//step1
for(const list of list1){
console.log(list);
}
//step2
const duplicateNumber = arr => {
//step1
for(const list of arr){
console.log(list);
}
}
duplicateNumber(list1);
console.log("---------");
duplicateNumber(list2);
//step2 -> step4
const duplicateNumber = (arr1, arr2) => {
//step3
const set1 = new Set(arr1);
//step1
for(const list of arr){
console.log(list);
}
}
//step2 -> step4
const duplicateNumber = (arr1, arr2) => {
//step3
const set1 = new Set(arr1);
//step5
const dup = new Set();
//step1
for(const list of arr){
console.log(list);
}
}
//step2 -> step4
const duplicateNumber = (arr1, arr2) => {
//step3
const set1 = new Set(arr1);
//step5
const dup = new Set();
//step1 -> step6
for(const list of arr2){
if(set1.has(list)){
dup.add(list);
}
}
}
//step2 -> step4
const duplicateNumber = (arr1, arr2) => {
//step3
const set1 = new Set(arr1);
//step5
const dup = new Set();
//step1 -> step6
for(const list of arr2){
if(set1.has(list)){
dup.add(list);
}
}
//step7
return Array.from(dup);
}
console.log(duplicateNumber(list1, list2));
参照
Discussion