Javascript 如果已定义,如何推送数组的值?

Javascript 如果已定义,如何推送数组的值?,javascript,reactjs,Javascript,Reactjs,我有一个数组,它有一个项目列表,如果没有返回,这些项目将作为未定义项返回,如果返回,则返回true resolved = [undefined, undefined, undefined, true, undefined] 如果数组中存在“true”项,我如何将其推送到新数组中 到目前为止,我有这个 resolved.map(item =>{ if(item === undefined){ console.log(`No resolved issues`); } els

我有一个数组,它有一个项目列表,如果没有返回,这些项目将作为未定义项返回,如果返回,则返回true

resolved = [undefined, undefined, undefined, true, undefined]
如果数组中存在“true”项,我如何将其推送到新数组中

到目前为止,我有这个

resolved.map(item =>{

  if(item === undefined){
    console.log(`No resolved issues`);
  } else {
    console.log(`defined`);
  }

} )
输出:

newResolved = [true]
resolved=[未定义,未定义,未定义,真,未定义]
已解决。映射(项=>{
如果(项目===未定义){
log(`No resolved issues`);
}否则{
log(`defined`);
}
})
您错误地使用了
map()
,因为您需要
将每次迭代返回到它创建的新数组中

您真正想要的是
filter()

const arr=[undefined,undefined,undefined,true,undefined];
常数res=arr.filter(e=>e==true)
console.log(res)
您使用的
map()
不正确,因为您需要
将每次迭代返回到它创建的新数组中

您真正想要的是
filter()

const arr=[undefined,undefined,undefined,true,undefined];
常数res=arr.filter(e=>e==true)

console.log(res)
您可以使用
Array.prototype.filter
函数仅过滤有效项

const resolved=[undefined,undefined,undefined,true,undefined];
const result=resolved.filter(项=>item);

控制台日志(结果)您可以使用
Array.prototype.filter
函数仅过滤有效项

const resolved=[undefined,undefined,undefined,true,undefined];
const result=resolved.filter(项=>item);

控制台日志(结果)我认为你走的是正确的道路。这看起来像是
forEach
方法而不是
map
方法的主要用途。这将允许您查看每个数组值并对其进行处理

const newArray = []

resolved.forEach(item =>{
  if(item === undefined){
    console.log(`No resolved issues`);
  } else {
    console.log(`defined`);
    newArray.push(item)
  }
})

我想你走的路是对的。这看起来像是
forEach
方法而不是
map
方法的主要用途。这将允许您查看每个数组值并对其进行处理

const newArray = []

resolved.forEach(item =>{
  if(item === undefined){
    console.log(`No resolved issues`);
  } else {
    console.log(`defined`);
    newArray.push(item)
  }
})

已解析。过滤器(布尔值)
<代码>已解析。一些(布尔值)
?欢迎来到SO!不清楚你到底想要什么。输出/其他数组是什么?@epascarello嘿,刚刚更新
解析。过滤器(布尔值)
<代码>已解析。一些(布尔值)
?欢迎来到SO!不清楚你到底想要什么。输出/其他数组是什么?@epascarello嘿,刚刚更新了
.filter(布尔)
.filter(布尔)