Push в массив элементы по условию
Здравствуйте есть массив масивов [ [2,45], [66,89], [77,3] У нас [2,45] это [age, p] Если age>55 и p>7 тогда пушать в новый массив значения 'Senior ' если нет - тогда 'Open'
У меня проблема в тому что на эту проверку пушает 2 раза
const dataArray=[[2,3], [90,4], [56,52]]
for (let i=0; i<dataArray.length; i++) {
let index1=dataArray[i][0]
let index2=dataArray[i][1]
// console.log('index1 ', index1, 'index2 ',index2)
const arr=[]
const seniorOrOpen=dataArray[i].map(()=> (index1>55 && index2>7) ? arr.push('senior') : arr.push('open') )
console.log('seniorOrOpen ', arr)
}
Ответы (1 шт):
Автор решения: Ivan Didyk
→ Ссылка
Возможно вы не очень правильно составили алгоритм
const dataArray = [[2,3], [90,4], [56,52]];
const seniorOrOpen = dataArray.map(i => i[0] > 55 && i[1] > 7 ? 'senior' : 'open');
// Можно использовать
console.log('seniorOrOpen ', seniorOrOpen)
В чем были проблемы:
- Два цикла - вы повторили всю операцию столько раз, сколько элементов в массиве.
mapвыполняет операцию над каждым элементом массива.
Например[1, 2, 3].map(i => i*2)вернёт[2, 4, 6]. Если надо просто пройтись по массиву, то используйтеforEach