สมมติว่ามีอาร์เรย์ของอาร์เรย์ดังนี้:
const arr = [ [1,0], [0,1], [0,0] ];
เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ดังกล่าวเป็นอาร์กิวเมนต์แรก และอาร์เรย์ของตัวเลขสองตัวอย่างแน่นอนเป็นอาร์กิวเมนต์ที่สอง
ฟังก์ชันควรตรวจสอบว่าอาร์เรย์ที่รับมาจากอินพุตที่สองมีอยู่ในอาร์เรย์ของอาร์เรย์ต้นฉบับหรือไม่
ตัวอย่าง
const arr = [ [1,0], [0,1], [0,0] ];
const sub = [0, 0];
const matchEvery = (arr, ind, sub) => arr[ind].every((el, i) => el == sub[i]);
const searchForArray = (arr = [], sub = []) => {
let ind = -1;
let { length: len } = arr;
while (len--) {
if (arr[len].length === sub.length && matchEvery(arr, len, sub)){
ind = len;
break;
};
};
return ind;
};
console.log(searchForArray(arr, sub));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้:
2