我需要找到让javascript循环遍历数组的正确方法,找到所有可被3整除的数字,并将这些数字推送到一个新数组中。
这是我到目前为止所拥有的......
var array = [],
threes = [];
function loveTheThrees(array) {
for (i = 0, len = array.length; i < len; i++) {
threes = array.push(i % 3);
}
return threes;
}
因此,如果我们通过函数传递[1,2,3,4,5,6]的数组,它会将数字3和6推出到“threes”数组中。希望这是有道理的。
答案 0 :(得分:5)
您可以使用Array#filter
执行此任务。
filter()
为数组中的每个元素调用一次提供的callback
函数,并构造一个包含callback
返回真值或a value that coerces totrue
的所有值的新数组}。仅为已分配值的数组的索引调用callback
;对于已删除的索引或从未分配过值的索引,不会调用它。不会通过callback
测试的数组元素被简单地跳过,并且不包含在新数组中。
function loveTheThrees(array) {
return array.filter(function (a) {
return !(a % 3);
});
}
document.write('<pre>' + JSON.stringify(loveTheThrees([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 0, 4) + '</pre>');
&#13;
答案 1 :(得分:1)
var array = [],
three = [];
function loveTheThrees(array) {
for (i = 0, len = array.length; i < len; i++) {
if(array[i] % 3 == 0){
three.push(array[i]);
}
}
}
答案 2 :(得分:1)
console.log([1, 2, 3, 4, 5, 6, 7].filter(function(a){return a%3===0;}));
如果回调返回true,则Array.filter()遍历数组并将当前对象移动到另一个数组。在这种情况下,我编写了一个回调函数,如果它可被3整除则返回true,因此只有那些项目将被添加到不同的数组
答案 3 :(得分:0)
检查数字是否可被3整除,然后将其添加到数组中。试试这个
function loveTheThrees(array) {
for (i = 0, len = array.length; i < len; i++) {
if(array[i] % 3 == 0){
three.push(array[I]);
}
}
答案 4 :(得分:0)
loveTheThrees=(arr)=>arr.filter(el=>Boolean(parseFloat(el)) && isFinite(el) && !Boolean(el%3))
es6版+跳过非数字
loveTheThrees([null,未定义, '哈哈',100,3,6])
结果:[3,6]
答案 5 :(得分:0)
使用像Nina建议的过滤器是更好的方法。但是,我假设你是一个初学者,可能还不了解回调,在这种情况下,这个功能将起作用:
function loveTheThrees(collection){
var newArray = []
for (var i =0; i< collection.length;i++){
if (myArray[i] % 3 === 0){
newArray.push(collection[i])
}
}
return newArray;
}
答案 6 :(得分:0)
var originalArray = [1, 2, 3, 4, 5, 6, 7, 8, 9];
function loveTheThrees(array1) {
var threes = [];
for (var i = 0; i < array1.length; i++) {
if (array1[i] % 3 === 0) {
threes.push(array1[i]);
}
}
return threes;
}
loveTheThrees(originalArray);
答案 7 :(得分:0)
在ES6中:
const arr = [1, 33, 54, 30, 11, 203, 323, 100, 9];
// This single line function allow you to do it:
const isDivisibleBy3 = arr => arr.filter(val => val % 3 == 0);
console.log(isDivisibleBy3(arr));
// The console output is [ 33, 54, 30, 9 ]