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

时间:2015-10-28 19:21:04

标签: javascript arrays

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

我的代码是

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

所以我将有一个

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

但我怎么能得到这样的每个单词的长度?

Hello = 5 
world = 5

6 个答案:

答案 0 :(得分:2)

您可以使用地图阵列功能:

O

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

尝试map()

&#13;
&#13;
var words = ['Hello', 'world'];

var lengths = words.map(function(word) {
  return word + ' = ' + word.length;
});

console.log(lengths);
&#13;
&#13;
&#13;

答案 3 :(得分:1)

ES6尚未广泛推出(2015-10-28)但为了完整性 - 您可以将arrow operator.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 ]

答案 4 :(得分:0)

你可以创建一个结果对象(所以你有密钥,&#34;你好&#34;和长度,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}

答案 5 :(得分:0)

你可以使用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"

或使用map获取相同的POJO:

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