在字符串数组中找到最大的字符串

时间:2018-10-25 12:17:57

标签: javascript arrays string

我正在尝试解决以下问题。我对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'];

5 个答案:

答案 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)