2017-10-03 6 views
1

객체.배열은, 입력에서 키 당 객체는 내가 함께이 코드를 넣어 몇 가지 문제에 봉착

{ 
name: 'bob', 
age: 55, 
role: 'baker' 
} 

는 좀하고 싶습니다 :

[[name:'bob'],[age:55],[role:'baker']] 

이 내가 무엇을 가지고 :

function valFunct(obj) { 
var values =[]; 
for(var key in obj){ 
values.push(obj[key]); 
} 
return values 
} 

출력은 내가 원하는 것이 아니다. 배열의 인덱스가 숫자가 아닌 문자열해야하기 때문에

+5

원하는 출력 JavaScript가 올바르지 않습니다. '[{name : 'bob'}, {age : 55}, {role : 'baker'}]'를 원하십니까? –

+2

혹은'[[ "이름", "밥"], [ "나이", 55], [ "역할", "빵"]]'? 당신은 키 값 쌍의 배열로 완벽하게 좋은 개체를 분할하고자하는 경우 – Alnitak

+1

내 경험에 있지만, 당신은 아마 ... 잘못이있다 – Alnitak

답변

-2

그냥 쌍 배열을 원하는 경우에, 당신은 당신의 푸시 모든

values.push([key, obj[key]]); 
+0

본 영업 이익은 실제로'원하는 _should_ [[키 1 값 1], [키 2 1, 값을, ...]' – Alnitak

3

먼저 해결할 수, [[name:'bob'],[age:55],[role:'baker']]은 작동하지 않습니다.

var input = { 
 
    name: 'bob', 
 
    age: 55, 
 
    role: 'baker' 
 
}; 
 

 
function transform(obj) { 
 
    return Object.keys(obj).map(function(key) { 
 
    return { [key]: obj[key] } 
 
    }); 
 
} 
 

 
console.log(transform(input));

를 아니면 (ES7 Object.entries 같은) 대상 항목으로 변환 싶어 : 당신은 아마 이런 식으로 뭔가를 찾고

var input = { 
 
    name: 'bob', 
 
    age: 55, 
 
    role: 'baker' 
 
}; 
 

 
function transform(obj) { 
 
    return Object.keys(obj).map(function(key) { 
 
    return [key, obj[key]]; 
 
    }); 
 
} 
 

 
console.log(transform(input));

2
var person = { first: "rafael", last: "cepeda", age: 24 }; 

function weird_fn(obj) { 
    var arr = []; 
    for (var p in obj) { 
     var o = {}; 
     o[p] = obj[p]; 
     arr.push(o); 
    } 
    return arr; 
} 

console.log(weird_fn(person)); 
,

출력 :

[ { first: 'rafael' }, { last: 'cepeda' }, { age: 24 } ] 
+1

당신은'은'obj.hasOwnProperty (p)를 놓친) – cyrix

+1

를 @ 그가하지 않은 cyrix는 현대 JS 코드에서 거의 필요하지 않습니다. 요즘에는'Object.prototype'을 안전하지 않게 수정하는 사람은 아무도 없으며 입력은 프로토 타입 체인이없는 일반 객체입니다. – Alnitak

+0

하하, 아니면 * 나? 알니 타크 - 예 그것이 @ – Rafael