Задать вопрос
Ответы пользователя по тегу JavaScript
  • Как сгруппировать элементы вложенных массивов?

    Не совсем понятна логика преобразования числовых массивов. Если со строками понятно, то с числами по условию какой-то чёрный ящик получается.

    const source = ['Яблоко', 'Банан', 'Груша', 'Груша', 'Яблоко', 'Яблоко', 'Банан'];
    
    const mix_source = [
      ['Яблоко', 'Банан', 'Груша', 'Груша', 'Яблоко', 'Яблоко', 'Банан'],
      [33, 22, 3331, 234, 3234],
    ];
    
    // Функция для обработки строковых массивов
    const clearStringArray = (arr) => {
    	const clear_arr = [];
    
    	arr.forEach((arr_item) => {
    		if(clear_arr.indexOf(arr_item) === -1) {
    	  	clear_arr.push(arr_item);
    	  }
    	});
      
      return clear_arr;
    }
    
    // Функция для обработки числовых массивов
    const clearNumberArray = (arr) => {
      // ...
      return arr;
    }
    
    // Функция для обработки сложного массива
    const clearMixArray = (arr) => {
    	return mix_source.map((mix_item) => {
        const is_array = Array.isArray(mix_item);
        const array_have_first_element = typeof mix_item[0] !== undefined;
        const first_element_type = typeof mix_item[0];
    
        if (is_array && array_have_first_element) {
          switch(first_element_type) {
            case "string": return clearStringArray(mix_item);
            case "number": return clearNumberArray(mix_item);
          }
        }
      });
    }
    
    // Пример обработки строкового массива
    console.log(clearStringArray(source));
    //(3) ["Яблоко", "Банан", "Груша"]
    
    console.log(clearMixArray(mix_source));
    /*
    	0: (3) ["Яблоко", "Банан", "Груша"]
    	1: (5) [33, 22, 3331, 234, 3234]
    	length: 2
    */
    Ответ написан
    Комментировать
  • Можно ли получить содержимое SVG через getSVGDocument?

    document.getElementById('svg').getSVGDocument() :)
    Упустил скобки для вызова функции.
    А так же советую отслеживать загрузку самого файла, т.к. файл можете еще не загрузится а ты его просишь сообщить контент:
    document.getElementById('svg').addEventListener('load' , function(){
    console.log('Вот теперь данные загрузились');
    })
    Ответ написан
    Комментировать