Chúng ta cần viết một hàm nhận vào mảng các chuỗi và trả về chỉ số của chuỗi dài nhất. Khi tính độ dài chuỗi, không tính độ dài do khoảng trắng chiếm dụng.
Nếu hai hoặc nhiều chuỗi có cùng độ dài lớn nhất, trả về chỉ số của chuỗi đầu tiên thỏa mãn.
Chúng ta sẽ duyệt mảng, tách từng phần tử bằng khoảng trắng, nối lại và tính độ dài, lưu vào một object. Khi gặp độ dài lớn hơn giá trị hiện tại trong object, cập nhật và cuối cùng trả về chỉ số.
Ví dụ
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));Kết quả
Đầu ra trong console sẽ là:
4