Почему проход второго цикла начинается с 1, а не с 0?
Сделайте функцию uniq, которая будет оставлять в массиве только уникальные элементы (то есть будет удалять дубли).
function uniq(arr){
for(var i = 0; i <arr.length; i++){
for(var j = 1; j < arr.length; j++){
if(arr[i] == arr[j]){
arr = delElem(arr,arr[i]);
}
}
}
return arr;
}
console.log(uniq([1,8,5,8,12,13,12]));
function delElem(arr, num){
var newarr =[];
for(var i=0; i < arr.length; i++){
if(arr[i] != num){
newarr.push(arr[i]);
}
}
return newarr;
}
Чтобы не сравнивать нулевой элемент с самим же собой
function uniq(arr){
for(var i = 0; i <arr.length; i++){
for(var j = 1; j < arr.length; j++){
if(arr[i] == arr[j]){
arr = delElem(arr,arr[i]);
}
}
}
return arr;
}
console.log(uniq([1,2,3,2,1]));
console.log(uniq([0,1,0,2,0,3,0,4]));
function delElem(arr, num){
var newarr =[];
for(var i=0; i < arr.length; i++){
if(arr[i] != num){
newarr.push(arr[i]);
}
}
return newarr;
}
Собственно этих 2 примеров достаточно чтобы понять что код ни работает ну никак просто.
Основная ошибка - в обычном цикле по массиву удалять элементы. Ну и дополнительно лишние циклы. Пример (я не JS поэтому код чуть некрасивый как это хотя бы будет работать).
function uniq(arr) {
var p = 0;
for (var i = 0; i < arr.length; i++) {
var u = true;
for (var j = 0; j < p; j++) {
if (arr[i] == arr[j]) {
u = false;
break; //!!!!
}
}
if (u)
arr[p++] = arr[i];
}
return arr.splice(0, p);
}
console.log(uniq([1, 2, 3, 2, 1]));
console.log(uniq([0, 1, 0, 2, 0, 3, 0, 4]));
function unique(arr) {
if (!arr.length) {
return[];
}
for (var i = 0, obj = {}; i < arr.length; i++) {
obj[arr[i]] = true;
}
return Object.keys(obj);
}
console.log(unique([1, 8, 5, 8, 12, 13, 12])); // ["1", "5", "8", "12", "13"]
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть такая задача: Имеется пять html блоков, 4 по углам и один в центре, при нажатии на любой из угловых блоков центральный должен занимать позицию...
Есть массив объектов, которые нужно вывести в excel файлВсё делается правильно, но данные все слипаются, все узко и ничего не понятно
У меня есть страничка, на которой есть меню, которое отвечает за содержание контента в окне, она реализована через: