Вот несколько вариантов, которые вы можете рассмотреть, для которых требуется один цикл.
var arr = [ { name: "toto", totoNumber: "1", }, { name: "tata", totoNumber: "2", }, { mame: "error", }, ]
// via Array.forEach
let fe = []
arr.forEach(({totoNumber}) => totoNumber ? fe.push(totoNumber) : 0)
// via Array.reduce
let r = arr.reduce((acc,{totoNumber}) => (totoNumber ? acc.push(totoNumber) : 0, acc), [])
// via Array.map acting like Array.forEach
let m = []
arr.map(({totoNumber}) => (totoNumber ? m.push(totoNumber) : 0, totoNumber))
console.log(fe)
console.log(r)
console.log(m)
В действительности только Array.reduce
имеет смысл, и обычный способ обработки вашего сценария будет через Array.filter
, а затем Array.map
, но так как вы спросили, можете ли выделать это только с map
... вы могли бы, но map
должен возвращать точно такой же длины массива , так что это не совсем подходящее совпадение.