数一下数组中的数字,然后把它们写出来
Count the numbers in an array then write them out
对于学院的新人来说,这仍然是老派的JS周。
我已经创建了一个输入,使得用户可以在输入中输入一些数字来写出一个数组。
现在我接下来要做的是写一个段落,每个数字都有一个计数器,比如这个数字被使用了多少次。
如果数组为[0,0,1,1,1,2,2,2,2];
我希望它像这样写出来:
"你的数字在数组中出现了多少次:"
0: 2
1: 3
2: 4
到目前为止,我让它从输入中打印出数字,但是我找不到一种方法使它像上面那样输出。
var numbers = [];
function numbarray() {
numbers.push(document.getElementById("box").value);
document.getElementById("text1").innerHTML = "";
document.getElementById("text1").innerHTML += numbers.join(", ");
}
<input type="text" id="box" placeholder="0-9 with comma" />
<input type="button" value="Click" onclick="numbarray()" />
<br>
Your array:<span id="text1"></span><br>
从昨天早上开始,经过修修补补,失败和谷歌搜索,我想我再次尝试SO,因为我从这个网站中学到的东西比我想象的要多。
提前感谢您
此解决方案的特点是一个对象用于计算具有出现焦点的数字的频率。
function count() {
var numbers = document.getElementById("box").value
.split(',')
.map(Number)
.filter(isFinite),
distribution = numbers.reduce(function (r, a) {
r[a] = (r[a] || 0) + 1;
return r;
}, {});
document.getElementById("text1").innerHTML = numbers.join(", ");
document.getElementById("distribution").innerHTML = Object.keys(distribution)
.sort(function (a, b) {
return distribution[b] - distribution[a];
})
.map(function (k) {
return k + ': ' + distribution[k];
}).join('<br>');
}
<input type="text" id="box" placeholder="0-9 with comma" />
<input type="button" value="Click" onclick="count()" /><br>
Your array: <span id="text1"></span><br>
How many times does your number appears in your array:<br>
<div id="distribution"></div>
var numbers = [];
function numbarray() {
numbers = [];
numbers = numbers.concat(document.getElementById("box").value.split(','));
var hash = {};
for(var i=0; i<numbers.length; i++) {
if (typeof hash[numbers[i]] === 'undefined') hash[numbers[i]] = 0;
hash[numbers[i]] ++;
}
document.getElementById("text1").innerHTML = "";
for(var k in hash) {
document.getElementById("text1").innerHTML += k + ': ' + hash[k] + ''n';
}
}
<input type="text" id="box" placeholder="0-9 with comma" />
<input type="button" value="Click" onclick="numbarray()" />
<br>
Your array:<span id="text1"></span><br>
function numbarray() {
var nums = {}; // Use a dictionary for tallying numbers
var numStrings = document.getElementById("box").value.split(","); // Split by commas
// Just tally up each number
for (var i = 0; i < numStrings.length; i++){
var num = numStrings[i];
if (num in nums){
nums[num]++;
}
else {
nums[num] = 1;
}
}
var keys_ = Object.keys(nums); // Get the keys and sort them
keys_.sort();
document.getElementById("text1").innerHTML = "<br>"; // Reset the html
for (var key in keys_){
// Print out each number and its tally
document.getElementById("text1").innerHTML = key + ": " + nums[key] + "<br>";
}
}
不确定我是否完全理解您想要做的事情,但是如果您想要显示每个数字的计数,您应该首先获得每个数字的计数,然后将它们放入DOM中,通过以下函数:
var numbers = [];
var numbersObject = {};
function numbarray() {
numbers.push(document.getElementById("box").value);
//put numbers in object to get count of each
for(i=0; i<numbers.length; i++){
if(numbersObject[numbers[i]]){
numbersObject[numbers[i]]++
}else{
numbersObject[numbers[i]] = 1
}
}
//prepare HTML
var content = '';
for(var key in numbersObject){
content += key + ':' + numbersObject[key] + '<br>';
}
document.getElementById("text1").innerHTML = content
}
相关文章:
- 显示数字,然后每5秒随机更改一次(javascript)
- 将 JavaScript “for” 生成的数字推送到一个数组中,然后将每个数字打印为 HTML
- Javascript - 先排序字母,然后排序数字
- Javascript:编写一个函数,接收一个数组,然后返回一个只有唯一数字的数组,只删除数组
- 用户在数字上输入金额,然后输出最高数字javascript
- 接收输入数字,直到用户输入零.然后输出最高.JavaScript
- 生成一个随机数字序列,然后用JavaScript在该序列后面附加一个大写字母
- 需要用户输入一个随机数,然后提醒用户数字 ibnputted
- 我想创建一个长度取决于用户输入的数组,然后尝试找到数组中所有数字的总和
- AngularJS如何获取一个数组,该数组将数字添加到函数中的元素,然后用另一个函数分散其注意力
- 重复数字达到极限,然后循环它
- 如何用变量定义一个数组,然后用一个数字填充每个数组
- JQuery:将数字相乘到单独的数组,然后得到结果的总和
- AngularJS:将对象中的两个数字相乘,然后得到总数
- 我是否可以动态更改带有数字的图像,然后将其打印为 PDF
- 按数字排序列表,然后使用 jQuery 按字母顺序排序
- 尝试通过AJAX发送数字,然后将它们添加到我的数据库中
- 将一个元素乘以一个数字,然后使用jQuery插入
- 使用提示,选择数字的数目,将该数目添加到数组中,然后显示总数
- 按布尔值,然后按数字(javascript)对对象数组进行排序