获取数组中每个元素的长度-JavaScript

Get length of every element in array - JavaScript

本文关键字:-JavaScript 元素 数组 获取      更新时间:2023-09-26

我想得到数组中每个元素的长度

我的代码是

var a = "Hello world" ; 
var chars = a.split(' '); 

所以我会有一个阵列

chars = ['Hello' , 'world'] ; 

但我怎样才能得到每个单词的长度呢?

Hello = 5 
world = 5

您可以使用map Array函数:

var lengths = chars.map(function(word){
 return word.length
}) 

ES6现在已经广泛可用(2019-10-03),因此为了完整性,您可以将箭头运算符与.map() 一起使用

var words = [ "Hello", "World", "I", "am", "here" ];
words.map(w => w.length);
> Array [ 5, 5, 1, 2, 4 ]

或者,非常简洁的

"Hello World I am here".split(' ').map(w => w.length)
> Array [ 5, 5, 1, 2, 4 ]

这里的关键是使用字符串的.length属性:

   for (var i=0;i<chars.length;i++){
    console.log(chars[i].length);
    }

您可以创建一个结果对象(这样您就有了关键字"hello"和长度5):

function getLengthOfWords(str) {
    var results = {}; 
    var chars = str.split(' ');
    chars.forEach(function(item) {
        results[item] = item.length;
    });
    return results;
}
getLengthOfWords("Hello world"); // {'hello': 5, 'world': 5}

尝试map()

var words = ['Hello', 'world'];
var lengths = words.map(function(word) {
  return word + ' = ' + word.length;
});
console.log(lengths);

如果你想保留单词和长度,你可以使用forEach:

var a = "Hello world" ; 
var chars = a.split(' ');
    var words = [];
    chars.forEach(function(str) { 
        words.push([str, str.length]);
    });

然后,您可以访问数组中的大小和单词。

可选地,您可以有一个小的POJO对象,以便更容易地访问:

var a = "Hello world" ; 
var chars = a.split(' ');
var words = [];
chars.forEach(function(str) { 
    words.push({word: str, length: str.length});
});

然后你可以访问它们,比如:

console.log(words[0].length); //5
console.log(words[0].word); //"Hello"

或者使用地图获得相同的POJO:

var words = chars.map(function(str) { 
    return {word: str, length: str.length};
});