เราจำเป็นต้องเขียนฟังก์ชันที่ยอมรับอาร์เรย์ของตัวอักษรสตริงและส่งกลับดัชนีของสตริงที่ยาวที่สุดในอาร์เรย์ ขณะคำนวณความยาวของสตริง เราไม่ต้องพิจารณาความยาวที่ใช้โดยช่องว่าง
หากสตริงตั้งแต่สองสตริงขึ้นไปมีความยาวเท่ากัน เราต้องส่งคืนดัชนีของสตริงแรกที่ทำเช่นนั้น
เราจะวนซ้ำในอาร์เรย์ แยกแต่ละองค์ประกอบด้วยช่องว่าง เข้าร่วมอีกครั้งและคำนวณความยาว หลังจากนี้ เราจะเก็บสิ่งนี้ไว้ในวัตถุ และเมื่อเราพบความยาวที่มากกว่าที่เก็บอยู่ในอ็อบเจ็กต์ในปัจจุบัน เราจะอัปเดตอ็อบเจ็กต์ และสุดท้าย เราจะส่งคืนดัชนี
ตัวอย่าง
const arr = ['Hello!', 'How are you', 'Can ', 'I use', 'splice method
with', ' strings in Js?'];
const findLongestIndex = (arr) => {
const index = {
'0': 0
};
const longest = arr.reduce((acc, val, index) => {
const actualLength = val.split(" ").join("").length;
if(actualLength > acc.length){
return {
index,
length: actualLength
};
}
return acc;
}, {
index: 0,
length: 0
});
return longest.index;
};
console.log(findLongestIndex(arr)); ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
4