Как удалить из JSOn по атрибуту?

У меня есть JSON следующим образом

[{
        "name": "Mike",
        "incentives": "23.45"
    },
    {
        "name": "Larsen",
        "incentives": "34.78",
        "newlyadded": true
    },
    {
        "name": "Steve",
        "incentives": "26.78"
    }
]

Мне нужно удалить все объекты JSON, которые содержат атрибут как недавно добавленный

я пробовал это так

myjson = myjson.filter((obj) => myjson.indexOf(obj.newlyadded) === true);

https://jsfiddle.net/o2gxgz9r/54476/

Не могли бы вы рассказать мне, как это сделать?

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
1
0
23
2

Ответы 2

Вам нужно проверить, что obj.newlyadded отсутствует или является ложным, потому что .filter оставляет только значения, которые возвращают истину.

var myjson = [{
		"name": "Mike",
		"incentives": "23.45"
	},
	{
		"name": "Larsen",
		"incentives": "34.78",
		"newlyadded": true
	},
	{
		"name": "Steve",
		"incentives": "26.78"
	}
];

myjson = myjson.filter((obj) => typeof obj.newlyadded === 'undefined' || obj.newlyadded !== true);

console.info(JSON.stringify(myjson))

Попробуй это. подробнее о hasOwnProperty

$(document).ready(function() {
 
 
 var myjson = [{
		"name": "Mike",
		"incentives": "23.45"
	},
	{
		"name": "Larsen",
		"incentives": "34.78",
		"newlyadded": true
	},
	{
		"name": "Steve",
		"incentives": "26.78"
	}
];



json = myjson.filter((obj) => obj.hasOwnProperty('newlyadded') === false);

console.info(JSON.stringify(json))
 
});
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Другие вопросы по теме