Chúng tôi được yêu cầu viết một hàm chấp nhận một mảng các ký tự chuỗi và trả về chỉ số của chuỗi dài nhất trong mảng. Trong khi tính toán độ dài của chuỗi, chúng tôi không phải tính đến độ dài bị chiếm bởi khoảng trắng
Nếu hai hoặc nhiều chuỗi có cùng độ dài dài nhất, chúng ta phải trả về chỉ mục của chuỗi đầu tiên có cùng độ dài.
Chúng ta sẽ lặp lại mảng, chia từng phần tử theo khoảng trắng, nối lại và tính độ dài, sau đó chúng ta sẽ lưu trữ nó trong một đối tượng. Và khi gặp độ dài lớn hơn hiện tại được lưu trữ trong đối tượng, chúng tôi cập nhật nó và cuối cùng, chúng tôi trả về chỉ mục.
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));
Đầu ra
Đầu ra trong bảng điều khiển sẽ là -
4