값이 프리미티브 (비 객체 또는 배열)이고 속성 이름이 prefix로 시작하는 경우 속성 값의 배열을 반환하는 함수를 구현하고 싶습니다. [1, true]
: 나는 프리미티브의 같은 배열을 얻을 것으로 기대 values(testObj, 'a')
함수 호출의 결과로 JavaScript : 속성 값만 반환
var values = function (obj, prefix) { ... }
var testObj = {
'a': 1,
'ab': [
{
'c': 2,
'ac': 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로 반환되면 중복 정보를 원하십니까? 'true'를 갖는 점 – Redu