Я хочу реализовать функцию, возвращающую массив значений свойств, если значение является примитивным (не объект или массив), а имя свойства начинается с префикса.JavaScript: только значения возвращаемого значения
Например
var values = function (obj, prefix) { ... }
var testObj = {
'a': 1,
'ab': [
{
'c': 2,
'ac': true
}
]
};
В результате values(testObj, 'a')
вызова функции я ожидаю получить такой массив примитивов: [1, true]
.
Вот моя попытка:
var values = function (obj, prefix) {
var res = [];
for (var i in obj) {
if (i.startsWith(prefix)) {
var v = obj[i];
if (typeof v === 'object') {
var r0 = arguments.callee(v, prefix);
res.push(r0);
} else {
res.push(v);
}
}
}
return res;
};
Но он возвращает неправильный результат: [1, []]
. Как я могу это исправить?
, пожалуйста, добавьте желаемый результат. –
@NinaScholz '[1, true]' – Finkelson
Почему вы хотите получить избыточную информацию после того, как вы вернетесь с 1, что является точкой «истины» – Redu