我想得到数组中每个元素的长度
我的代码是
var a = "Hello world" ;
var chars = a.split(' ');
所以我将有一个
数组chars = ['Hello' , 'world'] ;
但我怎么能得到这样的每个单词的长度?
Hello = 5
world = 5
答案 0 :(得分:2)
您可以使用地图阵列功能:
O
答案 1 :(得分:1)
这里的关键是使用字符串的.length属性:
for (var i=0;i<chars.length;i++){
console.log(chars[i].length);
}
答案 2 :(得分:1)
尝试map()
var words = ['Hello', 'world'];
var lengths = words.map(function(word) {
return word + ' = ' + word.length;
});
console.log(lengths);
&#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};
});