javascript - 如何获取多维数组中最长的单词?
问题描述
我正在尝试找到获取每个数组中最长单词的方法:
var carnivores = ['lion', 'shark', 'wolve', 'puma', 'snake'];
var herbivores = ['elephant', 'giraffe', 'gacelle', 'hippo', 'koala'];
var omnivores = ['human', 'monkey', 'dog', 'bear', 'pig'];
然后我创建一个多维数组:
var animals = [carnivores, herbivores, omnivores];
为了获得每个数组的最长单词,我这样做:
var carnivores = ['lion', 'shark', 'wolve', 'puma', 'snake'];
var herbivores = ['elephant', 'giraffe', 'gacelle', 'hippo', 'koala'];
var omnivores = ['human', 'monkey', 'dog', 'bear', 'pig'];
var animals = [carnivores, herbivores, omnivores];
function longestAnimals() {
var longest = "";
for (var i = 0; i < animals.length; i++) {
for (var j = 0; j < animals[i].length; j++) {
if (animals[i][j].length > longest.length) {
longest = animals[i][j];
}
}
}
return longest;
}
console.log(longestAnimals());
我的代码返回所有数组中最长的单词,它只显示大象。我该怎么做才能获得鲨鱼、大象和猴子。谢谢!
解决方案
创建一个获取一个数组中最长单词的函数,然后将其映射到其他函数:
function longest(arr) {
let longest = "";
for (const ele of arr) {
if (ele.length > longest.length) {
longest = ele;
}
}
return longest;
}
function longestInEach(arr) {
return arr.map(v => longest(v));
}
const carnivores = ['lion', 'shark', 'wolve', 'puma', 'snake'];
const herbivores = ['elephant', 'giraffe', 'gacelle', 'hippo', 'koala'];
const omnivores = ['human', 'monkey', 'dog', 'bear', 'pig'];
const animals = [carnivores, herbivores, omnivores];
console.log(longestInEach(animals)) // ["shark", "elephant", "monkey"]
推荐阅读
- microsoft-graph-api - PATCH 带有生日或租用日期的用户请求返回 500 错误
- python - Python Django url 无法正常工作?
- javascript - 图像调整大小 - Javascript
- javascript - 重新加载视图后 Laravel AJAX 调用不起作用?
- javascript - 如何比较输入和 JSON 数据
- vba - 格式化代码以输出新行以进行数字扩展
- c# - WPF,MVVM,如何动态绑定属性?
- json - Chilkat - 从两个数组生成单个 Json 数组
- informatica - Informatica 时间错误,与源数据和目标数据不匹配
- c# - ASP.NET CORE 中有意义的 URL 路由