计算字符串中单词的字母数

时间:2015-11-01 02:01:07

标签: javascript

所以我是JavaScript的新手 - 似乎找不到解决这个简单挑战的方法。

如果我要将以下内容解析为str = "apple ban"

必须在array = ["apple 5", "ban 3"]

中返回以下内容

基本上 - 计数识别单词,计算每个单词中的字母数量,每当出现空白区域时将字符串分开并将其推入一个数组中,每个单词分开,每个单词的长度紧挨着它。

到目前为止,这是我的工作原因 - 为何偏离基地。

function addLength(str){

  var array = [];

  array.push(str.split(/\s+/).length);

  return array;
}

我已经查看了过去关于SoF的问题并试图得出我自己的结论/解决方案。这次似乎并非如此。

3 个答案:

答案 0 :(得分:4)

试试这个

var str = "apple ban";
var strArr = str.split(" ").map(x => {
  return x + " " + x.length;
});
console.log(strArr);

DEMO

答案 1 :(得分:0)

var name = "boss";
var obj = {};
var newArray = [];

for (var i = 0; i < name.length; i++) {
  var count = 0;
  for (var j = 0; j < name.length; j++) {
    if (name.charAt(i) === name.charAt(j)) {
      count++;
    }
  }
  
  var result = name[i] + "-" + count;
  obj = Object.assign(result);
  newArray.push(obj);
}

console.log(newArray);

输出:

[ "b-1", "o-1", "s-2", "s-2" ]

答案 2 :(得分:0)

var str = "annnu";
var arr = str.split("");
var count = 1;
var map1 = new Map();

for (let i = 0; i < arr.length; i++) {
  if (map1.has(arr[i])) {
    var k = map1.get(arr[i]);
    map1.set(arr[i], ++k);
  } else {
    map1.set(arr[i], 1);
  }
}

for (var [key, value] of map1) {
  console.log(key + ' = ' + value);
}