我在应用条件后返回数组时遇到问题。
在这里,
给定数组:[1, 2, 3]
条件1:如果是奇数,则应乘以*2。
条件2:如果是偶数,则返回它。
预期结果: [2, 2, 6]
这是我的方法;
function oddToEven(array) {
var evens = [array];
var odds = [array];
if (array %2 !== 0){
array *2;
return odds;
} else {
return evens;
}
}
oddToEven(1,2,3); // returns => [1]
我知道这是非常基本的, 当然我的方法都是错误的,但这是我学习 JS 的第一周,我希望你们中的一些人能给我一些启发!
非常感谢
最佳答案
使用.map
将一个数组转换为另一个数组 - 每次调用回调函数返回的将是新数组中同一索引中的项目:
const oddToEven = array => array.map(
num => num % 2 === 1 ? num * 2 : num
);
console.log(oddToEven([1, 2, 3]))
或者,更详细地说:
function oddToEven(array) {
return array.map(function(num) {
if (num % 2 === 1) // Odd
return num * 2;
else // Even (or not an integer)
return num;
}
}
当然,这假设原始数组中的每个项目都是整数。
关于javascript - 对数组应用条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55509776/