我正在尝试解决出现的挑战,我一直在给一个包含大量包含-和+ fx的数字的数据集:
-1 +2 -4
挑战在于:设备达到两次的第一个频率是多少?
所以我想出了一个解决方案,可以将数据集分成矩阵,这样就可以进行计算了。
但是,此解决方案的第一步是将我的数据集放入列表中,以便它们像这样循环:
static
如何使用javascript做到这一点?现在,我只得到所有数字的总和...
我希望有人可以帮助编码小精灵解决这个圣诞节问题!
答案 0 :(得分:0)
要将由空格分隔的数字字符串转换为数字数组,可以执行以下操作:
let str = "+3 -1 2 -1 +4 -5"; // example input;
const arr = str.split(' ');
for (let i = 0; i < arr.length; i++) arr[i] = parseFloat(arr[i]);
之后,arr
将是[3, -1, 2, -1, 4, -5]
。
现在,如果要计算每个项目在数组中出现的数量,可以执行以下操作:
const freq = {};
for (const item of arr) {
freq[item] = ++freq[item] || 1;
}
这将创建一个名为freq
的对象,该对象将是:{ 2: 1, 3: 1, 4: 1, "-1": 2, "-5": 1 }
。