gpt4 book ai didi

javascript - JS中如何循环字符串或将字符串转换为数组?或者找到更好的解决方案来解决这个问题

转载 作者:行者123 更新时间:2023-12-02 16:10:14 24 4
gpt4 key购买 nike

我正在学习 JavaScript 的第 14 个小时,并正在做一些挑战。

此代码的目的是找出数字在输入中出现的频率。

如果出现一次需要为0,则输出正确。(不要问我这是为什么?!他们想要这样并且可能有原因。)

我认为该解决方案不是最优雅的。你一定可以在这里帮助我并告诉我如何写得更好。我必须将“”添加到输入的第一个和最后一个位置,然后 - 将其转换为数组 - 再次删除它们,否则它将在数组中创建一个新的空项目(我认为)。有更好的方法来实现这一点吗?

var input =" 12 34 56 78 12 34 1 87 12 "
var digits= input.trim();
digits= digits.split(" ");
var arrayLength= digits.length;
var output ="";

for(var n=0; n<arrayLength; ++n){
var outputD =-1;
var inputLocal = input;

while (inputLocal.search(" " + digits[n] +" ") >= 0) {
inputLocal = inputLocal.replace(" " +digits[n]+" ", "");
++outputD;
}
output += " " + outputD;
console.log(output);
};

最佳答案

你可以使用一个对象作为映射来计数,然后使用map创建新数组,然后使用join,例如:

var input = ' 12 34 56 78 12 34 1 87 12 '
arr = input.trim().split(' '),
count = {}, result;

arr.forEach(function(item){
if (typeof count[item] !== 'undefined') {
count[item]++;
} else {
count[item] = 0;
}
});

result = arr.map(function(item){
return count[item];
});

console.log(result.join(' '));

关于javascript - JS中如何循环字符串或将字符串转换为数组?或者找到更好的解决方案来解决这个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30290035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com