Каков самый короткий JavaScript, необходимый для фильтрации объектов из массива

Учитывая массив

let arr = [1,2,true,4,{"abc":123},6,7,{"def":456},9,[10],{},"[object Object]"];
/*
let res = // briefest `javascript` text to filter objects from `arr`
*/

Ожидаемый результат res

[{"abc":123},{"def":456},{}];

Каков самый короткий текст javascript, необходимый для фильтрации объектов из исходного массива?

Ответ 1

Вы можете использовать Array.prototype.filter(). Исключить строку "[object Object]" из совпадений, лить элемент в строку с ''+element, вернуть Boolean результат проверки с помощью оператора идентификации, что элемент как строка равен "[object Object]"

let arr = [1,2,true,4,{"abc":123},6,7,{"def":456},9,[10],{},"[object Object]"];

let res = arr.filter(o=>''+{}!==o&&''+o===''+{});

console.log(res);