 
			
				22.03.2019, 11:37
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.02.2019 
					
					
					
						Сообщений: 5
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Многомерные массивы (удаление элементов)
			 
			
		
		
		
		Здравствуйте, как можно удалить пустые элементы многомерного массива, и, если массив окажется пустым, его тоже соответственно удалить? 
Допустим дан массив  
arr = [[1, empty, 3, 4, 5, empty], [empty, 2, 3, 4, 5 ,234, empty], [empty, empty, empty, empty]]. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				22.03.2019, 13:09
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.11.2015 
					
					
					
						Сообщений: 2,899
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
var empty = null;
var arr = [[1, empty, 3, 4, 5, empty], [empty, 2, 3, 4, 5 ,234, empty], [empty, empty, empty, empty]];
for(var i = arr.length - 1; i > -1; i--) {
    for(var j = arr[i].length - 1; j > -1; j--) {
        if(!arr[i][j]) arr[i].splice(j,1);
    }
    if(arr[i].length == 0) arr.splice(i,1);
}
alert(JSON.stringify(arr));
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				22.03.2019, 13:10
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		fcsm_andrei,
  
let arr = [[1, , 3, 4, 5, ], [, 2, 3, 4, 5 ,234, ], [, , , ]];
function f(c) {
    return c.reduce(function(b, a) {
        Array.isArray(a) ? (a = f(a), a.length && b.push(a)) : void 0 !== a && b.push(a);
        return b;
    }, []);
};
let c = f(arr);
console.log(c)
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				22.03.2019, 14:13
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 08.11.2017 
					
					
					
						Сообщений: 641
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
let arrs = [[1, , 3, 4, 5,], [, 2, 3, 4, 5, 234,], [, , ,]];
console.log(
  arrs.reduce((acc, cur) => {
    let items = cur.filter(item => item !== null)
    items.length && acc.push(items)
    return acc
  }, [])
)
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось SuperZen, 22.03.2019 в 14:14.
				Причина: hohoho
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				23.03.2019, 14:52
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 23.03.2019 
					
					
					
						Сообщений: 11
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
arr.map(i => i.filter(j => j !== null)).filter(k => k.length)
  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |