在Javascript中搜索由整数组成的数组并返回带有值的新数组
Search an Array made of integers in Javascript and return new array with values
我正试图从JavaScript中的for循环中的if条件中创建一个新数组。到目前为止,新数组在下列情况下返回undefined:
if( numbers[i] <= num)
我需要返回小于或等于num值的所有元素,并从它们创建一个新数组。有人能告诉我我哪里做错了吗?
function search(num, numbers) {
for (i = 0; i < numbers.length; i++){
var x = [];
if( numbers[i] <= num){
x.push(numbers[i]);}
}
return x;
}
(search(14, [7, 3, 23, 9, 14, 20, 7])
您应该使用array.filter
function search(num, numbers) {
return numbers.filter(function(n) { return n <= num });
}
search(5, [1,3,44,7,10]) //returns [1,3]
上面代码的核心问题是您在for
循环的每次迭代中声明var x = []
-每次都被覆盖。
- 没有名为"价格"的数组。你应该替换"价格"数字"。这就是为什么你得到undefined
- 将x=[]移出for循环。否则,每次执行for循环时,都会用空数组实例化x。每次函数在循环中迭代时,代码似乎都会擦除x的内容。
function search(num, numbers) {
var x = [];
for (i = 0; i < numbers.length; i++){
if( numbers[i] <= num){
x.push(numbers[i]);}
}
return x;
}
$('p').text(search(14, [7, 3, 23, 9, 14, 20, 7]));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<p></p>
看到小提琴
看起来您正在迭代另一个数组"Prices",其长度可能大于数字数组,这就是为什么您得到未定义的原因。
将x=[]移出for循环,因为它将为for循环的每个值重置
"prices.length" 可以使用underscore.js过滤函数 bigValues = function(array){
return _.filter(array, function(element){
return element > 10;
});
}
var array = [ 1, 2, 3, 10, 11, 23 ];
var bigResult = bigValues(array);
相关文章:
- csv数据中的新数组
- javascript函数,它将数组作为输入,将每个数组元素增加1,并返回增加值的新数组
- 按值名称过滤掉重复的对象,并将其放入新数组中
- 根据对多个数组唯一的元素创建一个新数组
- 使用javascript/jquery从现有数组中创建一个新数组,该数组保存项目存在的次数
- Javascript-在一个数组中搜索整个单词,并创建一个符合条件的新数组
- 使用Node中的Q promise库对值数组顺序调用/执行相同的函数;并返回带有结果的新数组/集合
- 将数组值替换为循环以创建新数组
- 带有附加元素的新数组不会可视化
- 创建新数组和清除长度之间的差异
- 如何将新数组传递给函数
- 创建新数组或增加计数器
- 将字符串数组的子字符串复制到Javascript中的新数组中
- 如何使用旧数组中的数据创建新数组
- 如何过滤/修改主干集合本身,而不是获取新数组
- 如何比较具有相同值的两个数组并将该相同值存储在新数组中
- 将现有数组的元素复制到新数组而不使用拼接
- 如何将新数组添加到另一个数组的特定对象中
- 将一个新数组放入另一个数组中
- 为什么它在创建json对象时创建数组新数组