我正在尝试解决以下问题。我对javascript没有太多实际的了解。
我需要找到数组中给定的最大字符串。如果数组中的多个字符串长度相同,则返回最长的第一个。
let test13 = ['a', 'aa', 'aaa'];
let test14 = ['asdf', 'qwer', 'zxcv'];
let test15 = ['asdfasdf fdasdf a sd f', ' asdfsdf', 'asdfasdfds', 'asdfsdf', 'asdfsdaf'];
let test16 = ['ddd','dddddddd','dddd','ddddd','ddd','dd','d','d','dddddddddddd'];
答案 0 :(得分:9)
您可以使用.reduce()
方法通过检查数组中每个字符串的length
并返回具有更多字符的字符串来找到所需的字符串:
let test1 = ['a', 'aa', 'aaa'];
let test2 = ['asdf', 'qwer', 'zxcv'];
let test3 = ['asdfasdf fdasdf a sd f', ' asdfsdf', 'asdfasdfds', 'asdfsdf', 'asdfsdaf'];
let test4 = ['ddd','dddddddd','dddd','ddddd','ddd','dd','d','d','dddddddddddd'];
let reducer = (arr) => arr.reduce((r, c) => r.length >= c.length ? r : c);
console.log(reducer(test1));
console.log(reducer(test2));
console.log(reducer(test3));
console.log(reducer(test4));
答案 1 :(得分:3)
var test14 = ['asdf', 'qwere', 'zxcv3eerer'];
function getLargeString(arr) {
var largeString = ""
arr.forEach(function (element) {
if (largeString == "")
largeString = element;
if (largeString.length < element.length)
largeString = element;
});
console.log(largeString);
}
getLargeString(test14);
答案 2 :(得分:0)
let test13 = ['a', 'aa', 'aaa'];
let test14 = ['asdf', 'qwer', 'zxcv'];
let test15 = ['asdfasdf fdasdf a sd f', ' asdfsdf', 'asdfasdfds', 'asdfsdf', 'asdfsdaf'];
let test16 = ['ddd','dddddddd','dddd','ddddd','ddd','dd','d','d','dddddddddddd'];
function findLongest(array){
var length=0;
var longest="";
for(var i=0;i<array.length;i++){
if(array[i].length>length){
length=array[i].length;
longest=array[i];
}
}
return "String : "+longest+" Length : "+length;
}
console.log(findLongest(test13));
console.log(findLongest(test14));
console.log(findLongest(test15));
console.log(findLongest(test16));
将上述逻辑应用于所有阵列。
答案 3 :(得分:0)
/**
* get the largest string of a string array
* returns null if input is not array or array is empty
*
* @param array string[]
* @returns null|object {max: string, value: string}
*/
let largest = (array) => {
// check if array is realy an array
if(!Array.isArray(array)){
return null;
}
// check if array is empty
if(array.length < 1) {
return null;
}
let len = 0;
let str = '';
for(let value in array){
if(value.length > len) {
len = len;
str = value;
}
}
return {max: len, value: str};
};
答案 4 :(得分:0)