使用用户输入的维度,根据每个元素中的字符数筛选数组
Filtering an array based on the number of characters in each element using user-entered dimensions
我是一个非常新手的程序员,有点拘泥于练习作业。
我想学习根据每个元素中的字符数过滤数组中的元素(我的数组是一个30个状态的列表)。基本上,用户在两个文本框中输入尺寸(数字0-40,有一个最小值和最大值)并按下输入按钮,然后数组应该根据这些数字进行更改(删除不符合输入规范的元素)。
我已经毫无问题地设置了HTML,但完全依赖于Javascript。我试图使用"过滤器",但它似乎没有达到我想要的效果。
任何帮助都将不胜感激!
您可以使用Array.prototype.filter
函数。它接受一个自定义函数,该函数应返回true
或false
。例如,此代码采用ints
数组,通过应用自定义函数创建一个新数组(删除偶数),并将其分配回ints
:
var ints = [1, 2, 3, 4, 5];
ints = ints.filter(function(x) { return x % 2 === 1; }); // ints is [1, 3, 5] now
这就是你可以在你的情况下使用它的方法:
// When a user clicks a button
document.getElementById('calc').onclick = function() {
var strings = ['a', 'on', 'the', 'form', 'index', 'length', 'factory'];
// Read values from <input>s
var minLength = parseInt(document.getElementById('minLength').value);
var maxLength = parseInt(document.getElementById('maxLength').value);
// Filter strings array according to the rule (length is between minLength and maxLength)
strings = strings.filter(function(x) {
return x.length >= minLength && x.length <= maxLength;
});
// Output
document.getElementById('result').innerHTML = strings.join('<br/>');
};
Min length: <input type="text" id="minLength" value="0"/><br/>
Max length: <input type="text" id="maxLength" value="7"/><br/>
<button id='calc'>Show</button>
<div id="result"></div>
假设您的数组已定义,它被称为myArray。
我认为您可以在某种程度上从用户那里获取值。所以我随机选择了最小值和最大值,如下所示。
var max = 40 ,
min = 0 ;
for(var i = 0; i < myArray.length ; i++){
var filteredArray = [];
if( myArray[i].length >= min && myArray[i].length <= max ){
filteredArray.push(myArray[i]);
}
}
相关文章:
- 元素的内容必须由格式正确的字符数据或标记组成
- angularjs删除动态形式元素中的特殊字符
- 元素名称上带有短划线 (-) 字符的 Json 对象
- 替换HTML元素中的字符
- 如何使用javascript在输入元素中显示特殊字符
- 字符计数不适用于动态创建的元素
- 如何在不丢失格式的情况下连续淡入() 元素文本的每个字符,包括嵌套元素
- 替换
元素中的特殊字符的问题
- 将文本和html unicode字符添加到textarea元素中
- 使用jquery为html元素文本的每个字符设置动画
- 删除字符串末尾的特定字符(html元素)
- 按字符位置内部换行文本元素
- 如何获取去除不需要的字符的url的最后一个元素
- 如何指定输入元素中允许的最大字符数 - 设置 maxlength 属性是否足够
- 如何从元素中删除定义的文本字符
- 如何使用 jQuery 忽略文本元素上的特定字符
- Jquery计算元素中的字符,并为太短的字符添加填充
- 元素中水平和垂直放置的等宽字符数
- 获取仅输入 11 个字符的表单元素
- 将元素/字符放到另一个字符的右侧