반응형
Javascript 객체의 속성 이름을 반복하는 방법은 무엇입니까?
테이블을 동적으로 작성하기 위해 Javascript 개체에서 속성 이름을 얻고 싶습니다. 예:
var obj = {'fname': 'joe', 'lname': 'smith', 'number': '34'};
for (var i = 0; i < obj.properties.length; i++) {
alert(' name=' + obj.properties[i].name + ' value=' + obj.properties[i].value);
}
경고 :
name=fname value=joe
name=lname value=smith
name=number value=34
그런 다음 다음과 같은 개체를 사용하여 테이블을 만들 수 있습니다.
var obj = { 'players': [
{ 'fname': 'joe', 'lname': 'smith', 'number': '34'} ,
{ 'fname': 'jim', 'lname': 'Hoff', 'number': '12'} ,
{ 'fname': 'jack', 'lname': 'jones', 'number': '84'}
] };
생산하는:
| fname | lname | number |
|-------|--------|---------|
| joe | smith | 34 |
| jim | Hoff | 12 |
| jack | jones | 84 |
최신 정보
답변 덕분에 헤더 목록에있는 첫 번째 개체의 속성 이름을 사용하여 Javascript 개체에서 테이블을 생성했습니다.
function renderData() {
var obj = { 'players': [
{ 'fname': 'joe', 'lname': 'smith', 'number': '34' },
{ 'fname': 'jim', 'lname': 'jones', 'number': '12' },
{ 'fname': 'jack', 'lname': 'Hoff', 'number': '84' }
] };
var cols = GetHeaders(obj);
$('#Output').html(CreateTable(obj, cols));
}
function CreateTable(obj, cols) {
var table = $('<table></table>');
var th = $('<tr></tr>');
for (var i = 0; i < cols.length; i++) {
th.append('<th>' + cols[i] + '</th>');
}
table.append(th);
for (var j = 0; j < obj.players.length; j++) {
var player = obj.players[j];
var tr = $('<tr></tr>');
for (var k = 0; k < cols.length; k++) {
var columnName = cols[k];
tr.append('<td>' + player[columnName] + '</td>');
}
table.append(tr);
}
return table;
}
function GetHeaders(obj) {
var cols = new Array();
var p = obj.players[0];
for (var key in p) {
//alert(' name=' + key + ' value=' + p[key]);
cols.push(key);
}
return cols;
}
for...in
루프 사용 :
for (var key in obj) {
console.log(' name=' + key + ' value=' + obj[key]);
// do some more stuff with obj[key]
}
JavaScript 1.8.5에서 Object.getOwnPropertyNames
주어진 객체에서 직접 찾은 모든 속성의 배열을 반환합니다.
Object.getOwnPropertyNames ( obj )
및 Object.keys
주어진 객체의 모든 열거 가능한 속성 의 이름을 포함하는 배열을 반환하는 또 다른 메서드 .
Object.keys( obj )
forEach
obj의 값과 키를 나열 하는 데 사용 했습니다.for (var key in obj) ..
Object.keys(obj).forEach(function (key) {
console.log( key , obj[key] );
});
This all are new features in ECMAScript , the mothods getOwnPropertyNames
, keys
won't supports old browser's.
반응형
'Programing' 카테고리의 다른 글
Windows 설치자를위한 무료 소프트웨어 : NSIS 대 WiX? (0) | 2020.11.17 |
---|---|
iPhone에서 활동 표시기보기를 사용하는 방법은 무엇입니까? (0) | 2020.11.17 |
C ++ 프로젝트에서 C 스타일 캐스트를 사용하는 경우 C ++ 캐스트로 리팩토링 할 가치가 있습니까? (0) | 2020.11.17 |
TabControl을 ViewModel 컬렉션에 어떻게 바인딩합니까? (0) | 2020.11.17 |
Android에서 채워지지 않은 그림을 그리는 방법은 무엇입니까? (0) | 2020.11.17 |