Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.04.2019, 19:15
Аспирант
Отправить личное сообщение для Untropee Посмотреть профиль Найти все сообщения от Untropee
 
Регистрация: 04.08.2015
Сообщений: 59

Удаление объектов из ассоциативного массива по ключу
Здравствуйте! Прошу помощи сижу думаю и гуглю уже долгое время ничего не выходит. Как возможно удалить объекты из массива полностью?
delete оставляет после себя undefined...

Массив объектов выглядит так:

var arr = {
index1: "11.09087",
index2: "11.09500000",
index3: "11.5788404",
index4: "12.80679"
}

как удалить index2? Заранее спасибо...
Ответить с цитированием
  #2 (permalink)  
Старый 11.04.2019, 19:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Untropee
delete оставляет после себя undefined...
Это удаление свойства, а undefined, это сообщение, что свойства не существует.
Ответить с цитированием
  #3 (permalink)  
Старый 11.04.2019, 19:35
Аспирант
Отправить личное сообщение для Untropee Посмотреть профиль Найти все сообщения от Untropee
 
Регистрация: 04.08.2015
Сообщений: 59

А возможно полностью удалить index2 не оставляя сообщения?

Чтобы после удаления index2 был объект:

var arr = {
index1: "11.09087",
index3: "11.5788404",
index4: "12.80679"
}

а не

var arr = {
index1: "11.09087",
undefined: undefined,
index3: "11.5788404",
index4: "12.80679"
}


Именно над этой задачей пыхчу уже не один час
Ответить с цитированием
  #4 (permalink)  
Старый 11.04.2019, 19:42
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Untropee
А возможно полностью удалить index2 не оставляя сообщения?
А оно что по собственной инициативе появляется? Не запрашивайте несуществующее и не будете получать сообщения.
Ответить с цитированием
  #5 (permalink)  
Старый 11.04.2019, 19:44
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

var arr = {
	index1: "11.09087", 
	index2: "11.09500000", 
	index3: "11.5788404", 
	index4: "12.80679"
};

delete arr.index2;

console.log(arr);


Это undefined свойство на самом деле является строкой, это возможно, только если вы присвоите объекту undefined свойство.
arr.undefined = undefined;
or
let x = void {}; arr[x] = x;
на самом деле есть приведения типа к строке в имени свойства, присваиваемого объекту

Последний раз редактировалось Malleys, 11.04.2019 в 19:53.
Ответить с цитированием
  #6 (permalink)  
Старый 11.04.2019, 20:01
Аспирант
Отправить личное сообщение для Untropee Посмотреть профиль Найти все сообщения от Untropee
 
Регистрация: 04.08.2015
Сообщений: 59

спасибо!!! delete действительно удаляет элемент полностью, проблема у меня была в другом, undefined по другой причине добавлялся... ух бошка уже горит, 3 день не отхожу от экрана

Последний раз редактировалось Untropee, 11.04.2019 в 20:05.
Ответить с цитированием
  #7 (permalink)  
Старый 11.04.2019, 20:09
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

чувак, ты сумасшедший! Вы должны отдыхать, независимо от того, что вы делаете, вы должны планировать свой отдых, это важно
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка из массива объектов при помощи filter. AndriiS Общие вопросы Javascript 20 06.01.2021 14:57
Получить массив из из массива объектов gunner17 Общие вопросы Javascript 2 07.03.2019 13:31
Удаление нескольких объектов из массива konstantin-921 Events/DOM/Window 4 10.03.2018 18:16
Конструктор массива объектов и работа с ними через localStorage pepel266 Общие вопросы Javascript 16 04.11.2015 18:30
Получить значения ассоциативного массива по ключу TITO Общие вопросы Javascript 2 11.01.2014 16:42