JavaScript / jQuery에서 객체의 속성을 얻는 방법은 무엇입니까?
자바 스크립트 / jQuery를에서 alert
object-가 있으면 [object]
또는[object Object]
알 수있는 방법이 있습니까?
이 두 차이점의 차이점은 무엇입니까
이것은 어떤 유형의 객체입니까
이 개체에 포함 된 모든 속성과 각 속성의 값
?
JavaScript의 기본 for in
루프를 호출하여 객체의 키와 값을 조회 할 수 있습니다 .
var obj = {
foo: 'bar',
base: 'ball'
};
for(var key in obj) {
alert('key: ' + key + '\n' + 'value: ' + obj[key]);
}
또는 jQuery의 .each()
방법 사용 :
$.each(obj, function(key, element) {
alert('key: ' + key + '\n' + 'value: ' + element);
});
여섯 개 기본 유형을 제외하고 , 모든 ECMA- / 자바 클래스입니다. 어레이; 기능; 모든 것이 수업입니다. 프리미티브의 대부분도 실제로는 메소드 선택을 가지고 있습니다. 필요한 경우 후드 아래의 습기로 주조됩니다. 기본 클래스 이름을 알기 위해 다음 Object.prototype.toString
과 같이 에서 메소드 를 호출 할 수 있습니다 .
alert(Object.prototype.toString.call([]));
위의 출력이 [object Array]
.
여러 가지 다른 클래스 이름이 있습니다 같은 [object Object]
, [object Function]
, [object Date]
, [object String]
, [object Number]
, [object Array]
,와 [object Regex]
.
개체 속성 / 값 목록을 가져 오려면 :
Firefox-Firebug :
console.dir(<object>);
Slashnick 에서 빌린 수업을받을 표준 JS :
var fGetKeys = function(obj){ var keys = []; for(var key in obj){ keys.push(key); } return keys; } // Example to call it: var arrKeys = fGetKeys(document); for (var i=0, n=arrKeys.length; i<n; i++){ console.log(i+1 + " - " + arrKeys[i] + document[arrKeys[i]] + "\n"); }
편집 :
<object>
위의 개체에 대한 변수 참조로 대체됩니다.console.log()
콘솔에서 사용할 수 있습니다. 이것이 무엇인지 확실하지 않은 경우alert()
i)이 두 개체의 차이점은 무엇입니까
간단한 대답은 [object]
내부 클래스가없는 호스트 개체를 나타내는 것입니다. 호스트 개체는 작업중인 ECMAScript 구현의 일부가 아니지만 호스트에서 확장으로 제공하는 개체입니다. 대부분의 최신 구현에서 DOM 개체는 기본 개체에서 상속되고 내부 클래스 이름 (예 : HTMLElement , Window 등)을 갖지만 DOM은 호스트 개체의 일반적인 예입니다 . IE의 독점적 인 ActiveXObject는 호스트 개체의 또 다른 예입니다.
[object]
내부 클래스 이름이없는 호스트 개체이기 때문에 Internet Explorer 7 이하에서 DOM 개체를 경고 할 때 가장 일반적으로 표시됩니다.
ii) 이것은 어떤 유형의 객체입니까
를 사용하여 객체의 "유형"(내부 클래스)을 가져올 수 있습니다 Object.prototype.toString
. 사양에 따라 항상 형식의 문자열을 반환해야합니다 [object [[Class]]]
. 여기서는 Object , Array , Date , RegExp[[Class]]
등과 같은 내부 클래스 이름입니다 .이 메서드는 다음을 사용하여 모든 개체 (호스트 개체 포함)에 적용 할 수 있습니다.
Object.prototype.toString.apply(obj);
많은 isArray
구현에서이 기술을 사용하여 개체가 실제로 배열인지 여부를 확인합니다 ( IE에서는 다른 브라우저만큼 강력 하지는 않지만 ).
iii)이 개체가 포함하는 모든 속성과 각 속성의 값
ECMAScript 3에서는 for...in
루프를 사용하여 열거 가능한 속성을 반복 할 수 있습니다 . 대부분의 기본 제공 속성은 열거 할 수 없습니다. 일부 호스트 개체도 마찬가지입니다. ECMAScript 5에서는를 사용하여 상속되지 않은 모든 속성의 이름이 포함 된 배열을 가져올 수 있습니다 Object.getOwnPropertyNames(obj)
. 이 배열에는 열거 할 수없고 열거 할 수없는 속성 이름이 포함됩니다.
이것이 스팸으로 간주되지 않기를 바랍니다. 끝없는 디버그 세션 후에 겸손하게 함수를 작성했습니다. http://github.com/halilim/Javascript-Simple-Object-Inspect
function simpleObjInspect(oObj, key, tabLvl)
{
key = key || "";
tabLvl = tabLvl || 1;
var tabs = "";
for(var i = 1; i < tabLvl; i++){
tabs += "\t";
}
var keyTypeStr = " (" + typeof key + ")";
if (tabLvl == 1) {
keyTypeStr = "(self)";
}
var s = tabs + key + keyTypeStr + " : ";
if (typeof oObj == "object" && oObj !== null) {
s += typeof oObj + "\n";
for (var k in oObj) {
if (oObj.hasOwnProperty(k)) {
s += simpleObjInspect(oObj[k], k, tabLvl + 1);
}
}
} else {
s += "" + oObj + " (" + typeof oObj + ") \n";
}
return s;
}
용법
alert(simpleObjInspect(anyObject));
또는
console.log(simpleObjInspect(anyObject));
Mozilla Firefox 용 FireBug 를 받으세요 .
사용하다 console.log(obj);
Spotlight.js 는 특정 항목을 찾는 창 개체 및 기타 호스트 개체를 반복하는 데 유용한 라이브러리입니다.
// find all "length" properties
spotlight.byName('length');
// or find all "map" properties on jQuery
spotlight.byName('map', { 'object': jQuery, 'path': '$' });
// or all properties with `RegExp` values
spotlight.byKind('RegExp');
// or all properties containing "oo" in their name
spotlight.custom(function(value, key) { return key.indexOf('oo') > -1; });
당신은 이것을 좋아할 것입니다.
결정된 소품의 첫 번째 인텐스에 대한 개체 스캔 :
var obj = {a:'Saludos',
b:{b_1:{b_1_1:'Como estas?',b_1_2:'Un gusto conocerte'}},
d:'Hasta luego'
}
function scan (element,list){
var res;
if (typeof(list) != 'undefined'){
if (typeof(list) == 'object'){
for(key in list){
if (typeof(res) == 'undefined'){
res = (key == element)?list[key]:scan(element,list[key]);
}
});
}
}
return res;
}
console.log(scan('a',obj));
참고 URL : https://stackoverflow.com/questions/4079274/how-to-get-an-objects-properties-in-javascript-jquery
'IT' 카테고리의 다른 글
| = (단일 파이프 같음) 및 & = (단일 앰퍼샌드 같음)의 의미 (0) | 2020.08.30 |
---|---|
.htaccess의 재 작성 규칙을 적용하기 위해 Apache를 다시 시작해야합니까? (0) | 2020.08.30 |
Javascript로만 Google 스프레드 시트에 액세스해야합니까? (0) | 2020.08.30 |
알파벳 목록 끝에 항목을 배치하는 데 사용할 문자는 무엇입니까? (0) | 2020.08.30 |
gnuplot에서 막대 차트를 어떻게 플로팅합니까? (0) | 2020.08.30 |