所以我是JavaScript的新手 - 似乎找不到解决这个简单挑战的方法。
如果我要将以下内容解析为str = "apple ban"
必须在array = ["apple 5", "ban 3"]
基本上 - 计数识别单词,计算每个单词中的字母数量,每当出现空白区域时将字符串分开并将其推入一个数组中,每个单词分开,每个单词的长度紧挨着它。
到目前为止,这是我的工作原因 - 为何偏离基地。
function addLength(str){
var array = [];
array.push(str.split(/\s+/).length);
return array;
}
我已经查看了过去关于SoF的问题并试图得出我自己的结论/解决方案。这次似乎并非如此。
答案 0 :(得分:4)
试试这个
var str = "apple ban";
var strArr = str.split(" ").map(x => {
return x + " " + x.length;
});
console.log(strArr);
答案 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);
}