繁体   English   中英

如何使用array.map返回一个空数组

[英]how to return an empty array with array.map

如果obj.chk!= true,我需要返回一个空数组,以检查是否未检查toDos

function listChk() 
{
    if (!chkExist('./toDoArr')) {console.log('Please create toDo list first!')}
    else {

        let toDoArr = JSON.parse(fs.readFileSync('./toDoArr'))

        let chkToDoArr = toDoArr.map(function (obj) {
            if (obj.chk === true){
               console.log( obj.toDo)
               return obj.toDo
            }
        });
        console.log(chkToDoArr) // >>  [ undefined, undefined ]

        if (chkToDoArr.length < 1) 
        console.log('no checked toDos or empty list');
    }
}

谢谢

我相信您需要使用的是过滤器而不是地图。 例如:

let chkToDoArr = toDoArr.filter(function (obj) {
  return obj.chk === true
})

console.log(chkToDoArr) // >>  []

过滤器返回结果数组,比较函数返回真值。

 let chkToDoArr = toDoArr.filter(obj => obj.chk).map(obj => obj.toDo)
  1. filter方法检查是否收到的elemet prop是true,然后返回该元素。 在错误上什么也不会返回。 如果在数组上所有对象元素prop(chk)为false,则返回空数组
  2. 第二个动作是地图过滤的数据并使用toDo prop返回数组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM