В коде есть несколько проблем:
function createGroups(totalPeople){
let i = 1
let group[i] = []; // issue #1
let array = totalPeople
totalPeople.map((user) => {
if(group[i] =< 3){ // issues #2 and #3
group[i].push(user)
}else{
array.push(group[i]); // issue #4
i++; // issue #5
}
})
};
Проблема №1:
Перед добавлением индекса вам нужно определить group
как массив.
let group = [];
group[i] = [];
Проблема №2:
Похоже, вы хотели сравнить group[i].length
и 3
Проблема № 3:
Используйте <=
вместо =<
, чтобы сравнить ваши номера. Кроме того, если вы сравните длину с <=
3, у вас будет 4 человека на группу. Поскольку первый индекс в массивах равен 0.
Проблема № 4:
Вы нажимаете array
, что является ссылкой на totalPeople
. Это то, что вы имели в виду? Потому что я сомневаюсь, что это принесет ожидаемые результаты. Вы можете инициализировать пустой массив и нажимать на него массив группы [i]. И затем верните этот новый массив. Как правило, хорошей практикой в функциональном программировании является возврат нового массива, а не изменение параметра, переданного в качестве параметра.
Проблема № 5:
Если вы увеличиваете i
, вам нужно для инициализации group[i]
в качестве массива, иначе вы не сможете нажать его, когда появится следующая итерация цикла.
Логика Differnet:
Теперь, когда вы исправили проблемы в своем коде, вот фрагмент, показывающий другой способ сделать это, используя Array.prototype.reduce :
const totalPeople = ["Joe", "Jack", "Jerry", "Jane", "Mary", "Billy", "Vicky", "Bobby"];
const groupsOfThree = totalPeople.reduce((accumulator, currentPerson, index) => {
// pushing the current person in the topest group in the accumulator
accumulator[accumulator.length-1].push(currentPerson);
// if it's the 3rd person, we're pushing the an empty group in the accumulator
if (index % 3 === 2) {
accumulator.push([]);
}
return accumulator;
}, [[]]); // the initial value of the accumulator will be an array containing an empty group
console.log(groupsOfThree);
Да, есть способ:
router.post('/deleteDP',jwtValid,function (req,res) {
user.findOneAndUpdate({$and:[{'_id': req.decoded.id},{db:{$exists:true}}]},{$set:{'dp':''}}, function (err, result) {
if(!err){
if(!result){
return res.send("2")
}
res.send("0");
}
res.send("1")
});
});
Это должно сработать:);