2013-03-04 7 views
0

현재 각 개체에 여러 속성이있는 개체 배열이 있습니다. 예 :배열을 수정하는 방법은 무엇입니까?

[ 
    { text: 'test1', 
    id: 1 
    }, 
    { text: 'test2', 
    id: 2 
    } 
] 

은 무엇 text에서 값을 포함하는 문자열 배열이 변환하는 가장 좋은 방법이 있을까요? 나는 underscore.js를 사용하여이 작업을 수행 할 수있을 거라고 생각했다 :

headerText = _.pick(headerRow, 'text'); 

하지만 개체가 배열에 있기 때문에이 작동하지 않습니다 생각합니다. 내 다음 생각은 배열의 각 요소를 반복하고 text 값을 새 배열로 밀어 넣는 것입니다.하지만이 방법을 더 잘 알고있는 사람이 있는지 궁금합니다. 제안?

답변

4

당신은 Array#map 찾고에서 사용할 수 없습니다 Source

심지어 밑줄도 필요하지 않습니다. Array#map은 ES5의 일부이며 Node에서 사용하는 JavaScript 엔진 인 V8에서 완전히 지원됩니다. Array#map은 배열의 각 항목에 대해 한 번 부여한 함수를 호출하고 해당 함수의 반환 값에서 새 배열을 작성합니다. 당신이 기존 배열을 변경하려는 경우

또는, Array#forEach 사용할 수 있습니다

headerRow.forEach(function(entry, index) { 
    headerRow[index] = entry.text; 
}); 

Live Example | Source

1

_.map(headerRow, function(row) { return row.text; })을 사용하십시오. |

var stringArray = headerRow.map(function(entry) { 
    return entry.text; 
}); 

Live Example을 : Array.map는 IE < 9

+0

* "IE에서 Array.map을 사용할 수 없습니다."* 그래서? OP는 그들이 노드를 사용하고 있다고 말합니다. 노드는 V8을 사용하며, Array # map을 가지고 있습니다. –

+2

이것은 IE 9가 문제가되지 않도록 node.js (서버 측 javascript)입니다. –

+0

죄송합니다; 태그를 놓 쳤어. – valtron

-1

이것은 보편적으로 지원되는 Array.map 방법을 사용하지 않는 바닐라 자바 ​​스크립트 버전입니다.

// assign the array to a variable 
var a = [ 
    { text: 'test1', 
    id: 1 
    }, 
    { text: 'test2', 
    id: 2 
    } 
]; 

// loop through each item in the array, reassigning with it's text value 
// not like this: for(i in a) a[i] = a[i].text 
// but with a for loop based on the array length 
var i; 
for(i=a.length; i; i--){ a[i-1] = a[i-1].text; } 

// check the results 
console.log(a); 
// ["test1", "test2"] 
+0

'for (i = 0; i Plato

+0

이번에는 아래 투표가 무엇입니까? –

+0

참고 : 코멘트가 [배열을 열거하기 위해 'for ... in'을 사용하지 않는 이유는 무엇입니까?] (http://blog.niftysnippets.org/2010/11/myths-and-realities-of-forin .html) –

0

나는 foreach를 사용하고 루프를 반복합니다.

var jamie = [ 
    { text: 'test1', 
     id: 1 
    }, 
    { text: 'test2', 
     id: 2 
    } 
]; 

var length = jamie.length, 
    element = []; 
for (var i = 0; i < length; i++) { 
    element[i] = jamie[i].id; 
    // Do something with element i. 
} 
    console.info(element); 
관련 문제