Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.12.2009, 17:55
Новичок на форуме
Отправить личное сообщение для blackzub Посмотреть профиль Найти все сообщения от blackzub
 
Регистрация: 14.12.2009
Сообщений: 4

функция должна возвращать объект без одного свойства
Собственно сабж
пытаюсь изобразить следующим образом

//функция должна возвращать объект без одного свойства
function remove_field(obj, prop)
{
var resObj = new Object;
var currentProp;

for(var i in obj)
	{
	currentProp = i;
	
	if (obj[i] != obj[prop])
		resObj[currentProp] = obj[i];
	}
	
return resObj;
}


не работает
как это сделать правильно?
Ответить с цитированием
  #2 (permalink)  
Старый 14.12.2009, 18:00
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

delete obj[prop];
Ответить с цитированием
  #3 (permalink)  
Старый 14.12.2009, 18:57
Новичок на форуме
Отправить личное сообщение для blackzub Посмотреть профиль Найти все сообщения от blackzub
 
Регистрация: 14.12.2009
Сообщений: 4

нет я не это имел в виду
удалять это свойство нельзя
нужно создать новый объект в котором будут все свойства кроме одного
Ответить с цитированием
  #4 (permalink)  
Старый 14.12.2009, 19:00
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

function remove_field(obj, prop) {
    var resObj = {};
    for(var i in obj) {
        if (obj.hasOwnProperty(i) && i != prop) {
            resObj[i] = obj[i];
        }
    }
    return resObj;
}

Только правильнее тогда назвать withoutField.
Ответить с цитированием
  #5 (permalink)  
Старый 14.12.2009, 19:25
Новичок на форуме
Отправить личное сообщение для blackzub Посмотреть профиль Найти все сообщения от blackzub
 
Регистрация: 14.12.2009
Сообщений: 4

спасибо, помогло!
Ответить с цитированием
Ответ



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

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