Удаление нулевых свойств из объекта JSON

0

У меня есть объект JSON, как показано ниже, я хочу удалить весь объект key, value pair из этого объекта. Мое приложение использует AngularJS. например, ниже мой объект

var items = [
{name:"Nick"},
{name:"Lee"},
{name:"Jenny"},
{name:null},
{name:null},
{name:null},
{name:"Graham"},
{name:"Erica"}]

Я хочу новый объект с именами, у которых нулевое значение удалено. Существуют ли какие-либо готовые функции в Angular или Underscore js

  • 0
    Это не объект JSON. Это массив JavaScript. Вы пробовали что-нибудь? Вы читали документацию Array?
Теги:
underscore.js

3 ответа

3
Лучший ответ

Вы можете сделать это прямо в javascript

items.filter( i => i.name );
// or in ES5
items.filter(function(i) {return i.name});

Это выглядит немного странно, поскольку вы полагаетесь на истинность javascript, чтобы сделать null как false, а что-то еще, как "true",

  • 0
    также выглядит странно, если OP знаком только с ES 5
  • 0
    Некоторые другие значения (например, ноль и пустая строка) также неверны, поэтому, чтобы ответить на точный вопрос, функция фильтра должна проверить, имеет ли значение i.name null и не полагаться на неявное преобразование JavaScript в логическое значение.
0

Вы можете удалить пустые и пустые значения строки из объекта json по нижнему коду.

У меня есть json object call sjonObj и хочу удалить всю пустую и пустую строку.

sjonObj = (function filter(obj) {
    var filtered = _.pick(obj, function (v) { return v !== '' && v !== null; });
    return _.cloneDeep(filtered, function (v) { return v !== filtered && _.isPlainObject(v) ? filter(v) : undefined; });
})(sjonObj);
0

Я не совсем уверен, что понял ваш вопрос. Если вы действительно хотите удалить (удалить) свойства из объекта, вы можете перебирать его ключи и использовать delete.

var obj = {
    a: 1,
    b: 2,
    c: 3
};

Object.keys(obj).forEach(key => {
    delete obj[key];
});

console.log(obj); // prints empty object { }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню