Не понимаю почему здесь выводит ошибку surname is not defined, если это св-во определено, как так?

Я чисто хотел поэкспериментировать, глянуть как работает 2-ой опциональный аргумент в виде массива. Хотел, чтоб в итоге вывелось {"name":"Nikita", "surname": "Ivanov", "age": 19, "friends":[{},{},{}]}. Но при этом продолжается вывод ошибки, что вроде как св-во surname не определено, почему?

let obj = {
    name: 'Nikita',
    surname: 'Ivanov',
    age: 19,
    friends: [
        { name: 'Kira', surname: 'Platt', age: 25 },
        { name: 'Victor', surname: 'Smith', age: 30 },
        { name: 'Victoria', surname: 'Blunt', age: 23 }
    ]
};
console.log(JSON.stringify(obj, [name, surname, age, friends]));


Ответы (1 шт):

Автор решения: Danil Apsadikov

Оберните свойства в кавычки

let obj = {
    name: 'Nikita',
    surname: 'Ivanov',
    age: 19,
    friends: [
        { name: 'Kira', surname: 'Platt', age: 25 },
        { name: 'Victor', surname: 'Smith', age: 30 },
        { name: 'Victoria', surname: 'Blunt', age: 23 }
    ]
};
console.log(JSON.stringify(obj, ["name", "surname", "age", "friends"]));

→ Ссылка