Как получить новый объект без свойства?

418
29 июля 2017, 07:30

Как отфильтровать объект по ключу?

Есть объект:

name: 'fffggfg'
surname: 'fhfhfhfg'
about: 'kdfkdfk'

Нужно получить новый объект без свойства about.

Answer 1

С filter:

const source = { 
  name: 'fffggfg', 
  surname: 'fhfhfhfg', 
  about: 'kdfkdfk' 
} 
 
console.log( 
    Object.keys(source) 
          .filter(key => key !== 'about') 
          .reduce( (res, key) => { res[key] = source[key]; return res; }, {}) 
);

Answer 2
  1. Клонировать: var result = Object.assign({}, soruce);
  2. Удалить не нужное поле delete result.about;

    var result = Object.assign({}, soruce);
    delete result.about;
    console.log(result);
    

Почитать об Object.assign и о delete можно на MDN.

Альтернатива (см. комментарии)

var source = {
    name: 'fffggfg',
    surname: 'fhfhfhfg',
    about: 'kdfkdfk',
};
function copyWithout(src, exclude) {
    var result = {};
    for (prop in src) {
        prop !== exclude && (result[prop] = src[prop]);
    }
    return result;
}
console.log(copyWithout(source, 'about'));
Answer 3

Можно, например, так:

function filterProps(obj, props) {
  var result = {};
  for (key of Object.keys(obj)) {
    if (props.indexOf(key) === -1) {
      result[key] = obj[key];
    }
  }
  return result;
}
var foo = {
  name: 'fffggfg',
  surname: 'fhfhfhfg',
  about: 'kdfkdfk'
}
console.log(filterProps(foo, ['about']));

Рабочий пример на JSFiddle

READ ALSO
Помогите достать элемент (javascript)

Помогите достать элемент (javascript)

Помогите, пожалуйста, никак не могу достать элементДля выделения одной кнопки другим цветом, крашу все в старый синий, а выбранную в тёмный

270
each затирает переменную, выводит только последнее значение

each затирает переменную, выводит только последнее значение

Выводит только последнее значение, хотя их намного большеВнутри конструкции поочередно данные выводит

260
Как узнать css свойства по значению

Как узнать css свойства по значению

У меня есть значение css, мне с помощью javascript нужно узнать какие свойства использует используют это значениеНапример 100px

280