Javascript 如何返回仅包含奇数的新数组

Javascript 如何返回仅包含奇数的新数组,javascript,Javascript,我有一个数组,我想将每个奇数加倍,并返回一个新数组,其中包含新加倍的数。由于某种原因,这些值不会翻倍;这是我的密码 function doubleOddNumbers(arr) { return arr.filter(function(value) { if(value%2 !== 0) { return value * 2 } }) } 当我在控制台中查看结果时,我会继续得到相同的奇数,而不是双倍数字,例如[1,2,3,4]将返回[1,3],而不是[2,6

我有一个数组,我想将每个奇数加倍,并返回一个新数组,其中包含新加倍的数。由于某种原因,这些值不会翻倍;这是我的密码

function doubleOddNumbers(arr) {
  return arr.filter(function(value) {
    if(value%2 !== 0) {
      return value * 2
    }
  })
}
当我在控制台中查看结果时,我会继续得到相同的奇数,而不是双倍数字,例如[1,2,3,4]将返回[1,3],而不是[2,6]。

它可以这样工作

函数双奇数(arr){
设newArr=[];
arr.forEach(函数(值){
如果(值%2!==0){
新到达推力(值*2);
}
});
返回newArr;
}
log(doubleOddNumber([1,2,3,4,5,6,7,8]);
它可以这样工作

函数双奇数(arr){
设newArr=[];
arr.forEach(函数(值){
如果(值%2!==0){
新到达推力(值*2);
}
});
返回newArr;
}
log(doubleOddNumber([1,2,3,4,5,6,7,8]);

您只需使用
数组。减少

函数编号(输入){
返回输入。减少((acc,cur)=>{
如果(当前%2!==0){
acc.push(电流*2);
}
返回acc;
}, []);
}

日志(DoubleOddNumber([1,2,3,4])
您只需使用
数组即可。reduce

函数编号(输入){
返回输入。减少((acc,cur)=>{
如果(当前%2!==0){
acc.push(电流*2);
}
返回acc;
}, []);
}

日志(DoubleOddNumber([1,2,3,4])首先,筛选器方法的返回语句始终为布尔类型。它永远不应该被用来假设它会返回一些东西。如果要从数组返回双倍奇数值,请执行以下操作-

arr.filter((value) => value % 2 !== 0).map((value) => value * 2);

首先,filter方法的返回语句总是布尔类型。它永远不应该被用来假设它会返回一些东西。如果要从数组返回双倍奇数值,请执行以下操作-

arr.filter((value) => value % 2 !== 0).map((value) => value * 2);

过滤器用于保留和删除项目,而不是转换/映射项目。首先需要过滤数组以保留奇数,然后使用
.map()
转换/映射这些数字。当您想要保留项目时,应该从filter方法返回
true
,当您想要删除项目时,应该从
false
返回。啊,我明白了!谢谢。筛选器用于保留和删除项目,而不是转换/映射项目。首先需要过滤数组以保留奇数,然后使用
.map()
转换/映射这些数字。当您想要保留项目时,应该从filter方法返回
true
,当您想要删除项目时,应该从
false
返回。啊,我明白了!谢谢。我认为OP希望输出是
[2,6]
,我可能是错的。虽然我认为OP希望输出是
[2,6]
,但我可能是错的