Find the shortest string in array

后端 未结 5 1591
遇见更好的自我
遇见更好的自我 2020-12-10 21:03

How can i find the shortest string in javascript array with different count of array elements? I used

var min = Math.min(arr[0].length,arr[1].length,arr[2]         


        
相关标签:
5条回答
  • 2020-12-10 21:33

    You could use Math.min with Array#reduce.

    var arr = ["aaaa", "aa", "aa", "aaaaa", "a", "aaaaaaaa"];
    
    console.log(
      arr.reduce(function(r, a) {
        return Math.min(r, a.length);
      }, Infinity)
    );

    ES6

    var arr = ["aaaa", "aa", "aa", "aaaaa", "a", "aaaaaaaa"];
    
    console.log(arr.reduce((r, a) => Math.min(r, a.length), Infinity));

    0 讨论(0)
  • 2020-12-10 21:34

    Use Array#map to create an array of lengths, and then apply it to Math.min():

    var arr = ['cats', 'giants', 'daughters', 'ice'];
    var min = Math.min.apply(Math, arr.map(function(str) { return str.length; }));
    console.log(min);

    Or use ES6's array spread and arrow function:

    var arr = ['cats', 'giants', 'daughters', 'ice'];
    var min = Math.min(...arr.map(({ length }) => length));
    console.log(min);

    0 讨论(0)
  • 2020-12-10 21:34

    You could use Array.prototype.reduce

    const arr = ['small', 'big', 'yuge']
    
    const shorter = (left, right) => left.length <= right.length ? left : right
    
    console.log(
      arr.reduce(shorter)
    )

    0 讨论(0)
  • 2020-12-10 21:47

    Use Array#reduce method.

    var arr = ["aaaa", "aa", "aa", "aaaaa", "a", "aaaaaaaa"];
    
    console.log(
      arr.reduce(function(a, b) {
        return a.length <= b.length ? a : b;
      })
    )


    With ES6 arrow function

    var arr = ["aaaa", "aa", "aa", "aaaaa", "a", "aaaaaaaa"];
    
    console.log(
      arr.reduce((a, b) => a.length <= b.length ? a : b)
    )

    0 讨论(0)
  • 2020-12-10 21:51

    Please see this short solution below. I hope it helps:

    var arr = ['cats', 'giants', 'daughters', 'ice'];    
    arr.sort(); // ice, cats, giants, daughters
    var shortest_element = arr[0]; // ice
    
    0 讨论(0)
提交回复
热议问题