function addNumifnotThere(numer){
var numCent = [];
numCent.forEach(function(){
if(numer in numCent)
console.log("you logged that");
else
numCent.push(numer);
});
return numCent;
}
Это мой текущий код, что его пытаются сделать, это прочитать массив, и если есть уже элемент выходит из цикла и говорит: «Вы уже зарегистрированы что ", очевидно, если он не может найти аналогичный элемент, то он подталкивает его к массиву.Как добавить элементы в динамический массив и исключающие exsisting элементы
Я хочу, чтобы это работало динамически, поэтому мы не можем заранее знать размер массива, поэтому первый элемент, переданный как аргумент, должен быть помещен в массив, (addNum (1) должен иметь распечатку массива [1] , вызов addNum (1) снова должен напечатать «вы уже зарегистрировали это»)
Однако есть две проблемы с этим 1) Попытка нажать на новый массив без каких-либо записей означает, что все не определено и, следовательно, пытается пройти массив просто заставляет программу печатать [].
2) Добавление некоторых случайных элементов в массив, чтобы заставить его работать, в этом случае numCent = [1,2,3] имеет другие проблемы, в основном, что добавление числа выше 3 приводит к тому, что код печатает некорректную информацию. В этом случае addNum (5) должен печатать [1,2,3,5], но вместо этого печатает [1,2,3,5,5,5]
Я знаю, что это должна быть простая ошибка, я слишком долго затягивался, чтобы не просить о помощи.
EDIT: Благодаря многочисленным выдающимся ответам здесь я теперь склоняюсь к методу indexOf, спасибо вам, ребята, так много.
Я смущен; вы хотите сохранить содержимое массива, но вы создаете новый массив в первой строке функции? –
Почему вы не используете библиотеку lodash.js и используете ее «включает» 'https: // lodash.com/docs # includes' –