一个值在数组中存在的次数
How many times a value exists in an array
我要做的第一件事就是找出输入中的数字i类型是否存在于数组中,这是有效的。
我要做的第二件事是找出它存在了多少次。我在这条路上走对了吗?
<input id="hvorMange" type="number">
<button type="button" onclick="skrivUt12()">Finn tallet</button>
<p id="skrivUt12"></p>
var liste = [12,14,13,76,5,1,23,12,87,124,674,98,3,7,-3,5];
function skrivUt12(){
var tall = +document.getElementById("hvorMange").value;
var sum = 0;
for(i = 0; i < liste.length; i++) {
if (tall === liste[i]) {
sum++;
document.getElementById("skrivUt12").innerHTML = "Tallet " + tall + " finnes " + sum + " antall ganger";
return true;
}
else {
document.getElementById("skrivUt12").innerHTML = "Tallet " + tall + " finnes ikke";
}
}
}
首先过滤列表以保留搜索项,然后返回过滤列表的长度:
var liste = [12,14,13,76,5,1,23,12,87,124,674,98,3,7,-3,5];
var count = (input, arr) => arr.filter(x => x === input).length;
console.log (count(12, liste)); // 2
最好使用一个对象来计数,并使用它来检查和显示计数。
var liste = [12, 14, 13, 76, 5, 1, 23, 12, 87, 124, 674, 98, 3, 7, -3, 5],
count = {};
liste.forEach(function(a) {
count[a] = (count[a] || 0) + 1;
});
console.log(count);
if (count[12]) {
console.log('12 exist ' + count[12] + ' time/s');
} else {
console.log('12 does not exist.');
}
.as-console-wrapper { max-height: 100% !important; top: 0; }
这对你有用吗
JSFiddle联系
var liste = [12, 14, 13, 76, 5, 1, 23, 12, 87, 124, 674, 98, 3, 7, -3, 5];
function skrivUt12() {
var tall = +document.getElementById("hvorMange").value;
var sum = 0;
for (i = 0; i < liste.length; i++) {
if (tall === liste[i]) {
sum++;
}
}
if (sum > 0) {
document.getElementById("skrivUt12").innerHTML = "Tallet " + tall + " finnes " + sum + " antall ganger";
} else {
document.getElementById("skrivUt12").innerHTML = "Tallet " + tall + " finnes ikke";
}
}
使用array .prototype.reduce()建立一个新的liste
匹配值计数数组。然后,您可以测试您正在查找的项目是否存在于该数组中,以及实例的计数是多少:
var liste = [12,14,13,76,5,1,23,12,87,124,674,98,3,7,-3,5];
var counts = liste.reduce((prev, curr) => (prev[curr] = ++prev[curr] || 1, prev), {})
var count = function(item){return counts[item] || 0;};
var exists = function(item){return !!counts[item];};
console.log(exists(13)); //true
console.log(exists(999)); //false
console.log(count(5)); //2
console.log(count(232)); //0
你可以在下面的帖子中试试Thor Jacobsen的答案。
你也应该参考ninjagecko的答案,因为它强调了其他方法。
也是一个警告,因为你是从输入中获取值,确保在比较它之前将它转换为数字。
For循环var arr = [1, 2, 3, 4, 5, 2, 1, 4, 4, 5, 5, 2];
function search() {
var searchVal = +(document.getElementById('txtValue').value || 0);
var count = 0;
for (var i = 0; i < arr.length; ++i) {
if (arr[i] === searchVal)
count++;
}
console.log(count)
}
<input type="text" id="txtValue">
<button onclick="search()">Get Count</button>
Array.filter
var arr = [1, 2, 3, 4, 5, 2, 1, 4, 4, 5, 5, 2];
function search() {
var searchVal = +(document.getElementById('txtValue').value || 0);
var count = arr.filter(function(item) {
return item === searchVal
}).length;
console.log(count)
}
<input type="text" id="txtValue">
<button onclick="search()">Get Count</button>
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 用于检查数组中是否存在元素的javascript自定义方法
- 验证会话中是否存在对象's数组
- 检查数组中是否存在字符串值,并返回找到的数组值js
- underline-js:将键对象与数组键对象进行比较,如果存在,则移除现有的添加新的
- 查找数组's按属性不存在于另一个数组中的对象
- 为什么没有从数组中存在的对象中删除属性
- 在对象上迭代以验证它是否's键存在于数组中
- 使用JQuery检查数组的索引中是否存在字符串
- JavaScript对象中存在数组的问题
- 使用javascript/jquery从现有数组中创建一个新数组,该数组保存项目存在的次数
- undercore返回数组中对象的indes,其中单词存在于对象中的句子中
- 如何使用函数来确定 Javascript 数组中是否存在值
- 检查数组中是否存在数组
- Javascript 速记方法,如果存在数组元素,则为变量分配真/假
- 如何在jquery中检查json中是否存在数组
- 如何检查多维数组中是否存在数组键
- 如何在json数据中检查任何列值使用angular js是否存在数组/集合
- 检查参数中是否存在数组
- 如果存在数组的元素,则从 mongodb 集合中检索项目(meteor js)