问题描述
给定下面的数组,创建一个循环遍历每个名称的函数,比较 每个的长度确定最长的名称,将该名称保存到变量中 最长的名字。将longest_name 返回到另一个名为answer 的变量并记录 屏幕上的答案变量。
let array = [ "John","Lee","Smitty","Cyren","Linda","Bart","Jason","Wilson","Travis","Newt"];
会是这样吗
let array = [ "John","Newt"];
let result = array.filter(val =>includes(val));
console.log(result);
解决方法
这是一个示例实现。
// A function which accepts an array as input
function findLongest(names) {
let longest_name = '';
// Loop through all the names
for (let i = 0; i < names.length; i += 1) {
// If the names is longer than longest_name,update it
if (names[i].length > longest_name.length) {
longest_name = names[i];
}
}
return longest_name;
}
let array = [ "John","Lee","Smitty","Cyren","Linda","Bart","Jason","Wilson","Travis","Newt"];
let answer = findLongest(array);
console.log(answer)
只需在数组上使用reduce,每次都返回最长的元素。
longest
变量将包含最后一个最长的元素。
请运行代码段并了解 reduce
,? : (Elvis operator)
在 javascript 中的工作原理
let array = [ "John","Newt"];
let longest = array.reduce((prev,curr) => curr.length > prev.length ? curr : prev,'');
console.log(longest)
希望对你有帮助?