เราจำเป็นต้องเขียนฟังก์ชันที่คืนค่า จริง หากเราสามารถแบ่งอาร์เรย์เป็นองค์ประกอบเดียวและส่วนที่เหลือ ให้องค์ประกอบนี้เท่ากับผลคูณขององค์ประกอบอื่นทั้งหมดยกเว้นตัวเอง มิฉะนั้นจะเป็นเท็จ
ตัวอย่างเช่น หากอาร์เรย์เป็น −
const arr = [1, 56, 2, 4, 7];
จากนั้นผลลัพธ์ควรเป็นจริง
เพราะ 56 เท่ากับ −
2 * 4 * 7 * 1
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const arr = [1, 56, 2, 4, 7];
const isEqualPartition = arr => {
const creds = arr.reduce((acc, val) => {
let { prod, max } = acc;
if(val > max || !max){
prod *= (max || 1);
max = val;
}else{
prod *= val;
}
return { prod, max };
}, {
prod: 1,
max: null
});
return creds.max === creds.prod;
};
console.log(isEqualPartition(arr)); ผลลัพธ์
ต่อไปนี้เป็นผลลัพธ์ในคอนโซล -
true