자바 스크립트 객체의 길이


2383

JavaScript 객체가 있습니다.이 객체의 길이를 가져 오는 기본 제공 방법이 있습니까?

const myObject = new Object();
myObject["firstname"] = "Gareth";
myObject["lastname"] = "Simpson";
myObject["age"] = 21;

15
자바 스크립트의 객체 리터럴은 기본적으로 연관 배열입니다. 예 : object.propertyName.propertyValue는 object [propertyName] [propertyValue]와 동일합니다
neitony

6
Underscore.js에 이것을 수행하는 하나의 라이너가 추가되었습니다 : stackoverflow.com/a/11346637/11236
ripper234

31
일단 라인 응답이 @aeosynth가 말한 것처럼 Object.keys (myArray) .length를 사용하십시오.
Ranadheer Reddy

67
좋아, Object.keys(obj).length
어때?

5
object.length가 유효하지 않은 이유는 무엇입니까? 올바른 결과를 반환합니다.
Adrian M

답변:


2623

가장 강력한 답변 (즉, 버그를 최소화하면서 시도하려는 의도를 포착하는)은 다음과 같습니다.

Object.size = function(obj) {
    var size = 0, key;
    for (key in obj) {
        if (obj.hasOwnProperty(key)) size++;
    }
    return size;
};

// Get the size of an object
var size = Object.size(myObj);

JavaScript 에는 Object.prototype에 항목을 추가하지 않는 일종의 규칙 이 있습니다. 다양한 라이브러리에서 열거를 깨뜨릴 수 있기 때문입니다. 그러나 Object에 메소드를 추가하는 것이 일반적으로 안전합니다.


다음은 2016 년 현재의 업데이트와 ES5 이상의 광범위한 배포입니다 . IE9 + 및 기타 모든 최신 ES5 + 가능 브라우저의 Object.keys()경우 위 코드를 다음과 같이 사용할 수 있습니다 .

var size = Object.keys(myObj).length;

Object.keys()현재 내장되어 있으므로 기존 프로토 타입을 수정할 필요가 없습니다 .

편집 : 객체에는 Object.key 메서드를 통해 반환 할 수없는 기호 속성이있을 수 있습니다. 따라서 대답은 언급하지 않고 불완전합니다.

객체 속성에 대한 고유 식별자를 만들기 위해 언어에 심볼 유형이 추가되었습니다. Symbol 유형의 주요 이점은 덮어 쓰기 방지입니다.

Object.keys또는 Object.getOwnPropertyNames기호 속성에는 작동하지 않습니다. 반품하려면을 사용해야 Object.getOwnPropertySymbols합니다.

var person = {
  [Symbol('name')]: 'John Doe',
  [Symbol('age')]: 33,
  "occupation": "Programmer"
};

const propOwn = Object.getOwnPropertyNames(person);
console.log(propOwn.length); // 1

let propSymb = Object.getOwnPropertySymbols(person);
console.log(propSymb.length); // 2

65
@Tres - 그것은 이미 정의되어있는 경우 항상 가치가 확인 그래서 누군가가 와서 당신을 모른 채 '크기'속성을 오버라이드 (override)하는 것입니다 경우 코드를 나눌 수는 이미 어딘가에 코드를 선언
수직 동기화

19
@vsync 당신은 매우 정확합니다. 항상 필요한 위생 검사를 구현해야합니다. :)
Tres

132
모두가 이것을 무시하는 이유 :Object.keys(obj).length
Muhammad Umer

33
@MuhammadUmer 아마도이 답변이 작성되었을 때 그 방법이 존재하지 않았기 때문일 것입니다. 심지어 오늘날에도 브라우저를 사용하려면 오래된 브라우저에 폴리 필이 필요할 것입니다.
Chris Hayes

21
@stonyau IE8, IE9, IE10은 Microsoft의 지원을받지 않는 죽은 브라우저입니다. IE8, IE9, IE10 사용자는 Microsoft에서 알림을 받고 지원되지 않는 오래된 브라우저를 사용하며 해당 기능이 작동하지 않을 것으로 예상합니다. support.microsoft.com/ko-kr/kb/3123303
Lukas Liesis

1705

hasOwnProperty검사에 대해 걱정할 필요가 없다는 것을 알고 있다면 다음과 같이 간단하게 수행 할 수 있습니다.

Object.keys(myArray).length

23
왜 안돼? 내가 아는 바로는 표준입니다. developer.mozilla.org/en/JavaScript/Reference/Global_Objects/…
vsync

104
보편적으로 구현 된 방법은 아니지만 이 표에서 지원하는 브라우저를 확인할 수 있습니다 .
aeosynth 2016

51
IE8이 지원되지 않습니다.
ripper234

22
파이어 폭스로 전환하는 시간 = 불행히도, 당신이 전환한다고해서 웹 사이트 사용자가 그 뜻을 의미하는 것은 아닙니다.
mdup

82
@ ripper234없이 IE 지원 = 시간 polyfill로
존 드보락

287

업데이트 : Underscore.js를 사용하는 경우 (권장, 경량입니다!)

_.size({one : 1, two : 2, three : 3});
=> 3

그렇지 않고 어떤 이유로 든 Object 속성을 엉망으로 만들고 싶지 않고 이미 jQuery를 사용하고 있다면 플러그인에 액세스 할 수 있습니다.

$.assocArraySize = function(obj) {
    // http://stackoverflow.com/a/6700/11236
    var size = 0, key;
    for (key in obj) {
        if (obj.hasOwnProperty(key)) size++;
    }
    return size;
};

7
_.size()underscore.js를 지원하는 Meteor 프로젝트를 위한 완벽한 솔루션이었습니다 .
tokyovariable

4
나는 밑줄을 사용 하고이 게시물은이 프로젝트에서 그것을 충분히 사용하지 않는다는 것을 상기시켰다. 객체를 처리하는 경우 underscore.js를 사용할 수 있어야합니다.
jbolanos

3
밑줄> (모든-[ 'lo-dash'])
Rayjax

underscorejs, js 아래에 있어야 할 것들 :)
minhajul

1
@Babydead는 객체의 실제 속성과 상속 된 속성을 구별합니다. developer.mozilla.org/en/docs/Web/JavaScript/Reference/…
ripper234

56

가장 다양한 브라우저 솔루션이 있습니다.

존재하는 경우 기본 Object.keys를 사용하므로 허용되는 답변보다 낫습니다. 따라서 모든 최신 브라우저에서 가장 빠릅니다.

if (!Object.keys) {
    Object.keys = function (obj) {
        var arr = [],
            key;
        for (key in obj) {
            if (obj.hasOwnProperty(key)) {
                arr.push(key);
            }
        }
        return arr;
    };
}

Object.keys(obj).length;

6
Object.keys()열거 가능한 속성의 이름 만 포함 된 배열을 반환합니다. ALL 속성을 가진 배열을 원한다면 Object.getOwnPropertyNames()대신 사용해야 합니다. developer.mozilla.org/en/docs/Web/JavaScript/Reference/…를
John Slegers

35

저는 JavaScript 전문가는 아니지만 Object에는 길이 메서드가 없으므로 요소를 반복하고 계산 해야하는 것처럼 보입니다.

var element_count = 0;
for (e in myArray) {  if (myArray.hasOwnProperty(e)) element_count++; }

@palmsey : OP와 공평하게 JavaScript 문서는 실제로 이러한 방식으로 Object 유형의 변수를 "연관 배열"로 사용하는 것을 명시 적으로 참조합니다.


8
프로토 타입을 통해 추가 된 메소드도 계산하므로 작동하지 않습니다.
Lajos Meszaros

30

이 메소드는 객체의 모든 속성 이름을 배열로 가져 오므로 객체의 키 길이와 동일한 해당 어레이의 길이를 얻을 수 있습니다.

Object.getOwnPropertyNames({"hi":"Hi","msg":"Message"}).length; // => 2

@PatrickRoberts 키 방법은 프로토 타입 체인에서 속성을 반환하지 않습니다. 여기 hasOwnProperty가 필요한 이유는 무엇입니까? 길이 등이 배열되어 로서도 getOwnProperty은 숨겨진 속성을 반환
무하마드 Umer

24

프로토 타입이나 다른 코드를 망설이지 않기 위해 자신 만의 객체를 만들고 확장 할 수 있습니다.

function Hash(){
    var length=0;
    this.add = function(key, val){
         if(this[key] == undefined)
         {
           length++;
         }
         this[key]=val;
    }; 
    this.length = function(){
        return length;
    };
}

myArray = new Hash();
myArray.add("lastname", "Simpson");
myArray.add("age", 21);
alert(myArray.length()); // will alert 2

항상 add 메소드를 사용하면 length 특성이 올바른 것입니다. 본인이나 다른 사람이 사용을 잊어 버릴 염려가 있으면 다른 사람이 길이 측정법에 게시 한 속성 카운터를 추가 할 수도 있습니다.

물론 항상 메서드를 덮어 쓸 수 있습니다. 그러나 그렇게해도 코드가 눈에 띄게 실패하여 쉽게 디버깅 할 수 있습니다. ;)


배열이 큰 경우 비용이 많이들 수있는 'for'로 루핑 할 필요가 없기 때문에 이것이 최선의 해결책이라고 생각합니다.
Emeka Mbah

20

속성이 프로토 타입 체인에 없는지 확인하는 방법과 잊지 말아야합니다.

var element_count = 0;
for(var e in myArray)
    if(myArray.hasOwnProperty(e))
        element_count++;

20

간단히 이것을 사용하여 length:

Object.keys(myObject).length

7
귀하의 답변이 stackoverflow.com/a/6700/8632727
Patata

3
당신은 또한 실제로 객체의 이름을 지정해서는 안됩니다myArray
Barry Michael Doyle

2
@BarryMichaelDoyle 나는 그것을 변경했습니다 :)
saurabhgoyal795

좋습니다. 실제로 변수의 이름에 따라 변수 이름을 지정하는 것이 좋습니다. 다른 개발자가 코드를 더 읽기 쉽게 만듭니다.
Barry Michael Doyle

4
"myArray"-> "myObject"편집 전에는 두 번째로 높은 상향식 답변과 동일했습니다.
Yunnosch

16

최신 브라우저에서만 작동하는 완전히 다른 솔루션입니다 (IE9 +, Chrome, Firefox 4+, Opera 11.60+, Safari 5.1+).

jsFiddle 참조

연관 배열 클래스 설정

/**
 * @constructor
 */
AssociativeArray = function () {};

// Make the length property work
Object.defineProperty(AssociativeArray.prototype, "length", {
    get: function () {
        var count = 0;
        for (var key in this) {
            if (this.hasOwnProperty(key))
                count++;
        }
        return count;
    }
});

이제이 코드를 다음과 같이 사용할 수 있습니다.

var a1 = new AssociativeArray();
a1["prop1"] = "test";
a1["prop2"] = 1234;
a1["prop3"] = "something else";
alert("Length of array is " + a1.length);

나는 그것이 안전하지 않다고 생각합니다. 예를 들어 "length"라는 키를 가진 요소를 가질 수 없습니다. a1 [ "length"] = "Hello world"; 항목을 저장하지 못했습니다. 또한 명령문 a1 [ "hasOwnProperty"] = "일부 소품"; 완전히 기능을

3
@PanosTheof length속성 을 사용한 경우 값을 저장하고 싶지 않다고 생각합니다. 사용 한 모든 코드는에 대해 시도하지 않고 저장하지 않도록해야하지만 코드가 length같으면 같을 것입니다. 표준 배열도. hasOwnProperty모든 객체를 재정의 하면 바람직하지 않은 결과가 발생할 수 있습니다.
Ally

16

<script>
myObj = {"key1" : "Hello", "key2" : "Goodbye"};
var size = Object.keys(myObj).length;
console.log(size);
</script>

<p id="myObj">The number of <b>keys</b> in <b>myObj</b> are: <script>document.write(size)</script></p>

이것은 나를 위해 작동합니다 :

var size = Object.keys(myObj).length;

15

경우에 따라 크기를 별도의 변수에 저장하는 것이 좋습니다. 특히 한 곳에서 한 요소 씩 배열에 추가하고 쉽게 크기를 늘릴 수있는 경우. 크기를 자주 확인해야하는 경우 훨씬 빠르게 작동합니다.


15

사용하다:

var myArray = new Object();
myArray["firstname"] = "Gareth";
myArray["lastname"] = "Simpson";
myArray["age"] = 21;
obj = Object.keys(myArray).length;
console.log(obj)


14

@palmsey : OP와 공평하게 자바 스크립트 문서는 실제로 이런 방식으로 Object 유형의 변수를 "연관 배열"로 사용하는 것을 명시 적으로 참조합니다.

그리고 @palmsey에 공평하게 그는 꽤 정확했습니다. 연관 배열은 아니며 분명히 객체입니다 :)-연관 배열의 역할을 수행합니다. 그러나 더 넓은 점에 관해서는 내가 찾은이 훌륭한 기사에 따라 분명히 그 권리를 갖는 것처럼 보입니다.

유해한 것으로 간주되는 JavaScript "연관 배열"

그러나이 모든 것에 따르면, 받아 들인 대답 자체가 나쁜 습관이 아닙니까?

Object에 대한 프로토 타입 크기 () 함수를 지정하십시오.

Object .prototype에 추가 된 것이 있으면 제안 된 코드가 실패합니다.

<script type="text/javascript">
Object.prototype.size = function () {
  var len = this.length ? --this.length : -1;
    for (var k in this)
      len++;
  return len;
}
Object.prototype.size2 = function () {
  var len = this.length ? --this.length : -1;
    for (var k in this)
      len++;
  return len;
}
var myArray = new Object();
myArray["firstname"] = "Gareth";
myArray["lastname"] = "Simpson";
myArray["age"] = 21;
alert("age is " + myArray["age"]);
alert("length is " + myArray.size());
</script>

동일한 실행 컨텍스트에서 다른 코드를 실행하는 경우 작동하도록 신뢰할 수 없으므로 응답이 허용되는 것으로 생각하지 않습니다. 확실하게 견고하게하려면 myArray 내에서 size 메소드를 정의하고 반복 할 때 멤버의 유형을 확인해야합니다.


13

크기를 표시하는 연관 데이터 구조가 필요한 경우 오브젝트 대신 맵을 사용하는 것이 좋습니다.

const myMap = new Map();
myMap.set("firstname", "Gareth");
myMap.set("lastname", "Simpson");
myMap.set("age", 21);
myMap.size; // 3

11

이건 어때?

function keyValuePairs() {
    this.length = 0;
    function add(key, value) { this[key] = value; this.length++; }
    function remove(key) { if (this.hasOwnProperty(key)) { delete this[key]; this.length--; }}
}

11

해시가 있다면

hash = { "a": "b", "c": "d"};

해시의 길이 인 키의 길이를 사용하여 길이를 얻을 수 있습니다.

키 (해시). 길이


2
이것은 훌륭한 답변이지만이 키 기능에 대한 설명서를 찾을 수 없습니다. 따라서 크로스 브라우저 지원에 확신이 없습니다.
chim

1
불행히도, 이것은 내가 처음 생각했던 것만 큼 좋은 답변이 아닙니다! 키 기능은 크롬 및 파이어 폭스 웹 콘솔에서만 사용할 수 있습니다. 이 코드를 스크립트에 넣으면 Uncaught ReferenceError : 키가 정의되지 않아 실패합니다.
chim


1
이것은 aeosynth의 답변과 어떻게 다릅니 까?
Peter Mortensen

11
var myObject = new Object();
myObject["firstname"] = "Gareth";
myObject["lastname"] = "Simpson";
myObject["age"] = 21;
  1. Object.values ​​(myObject) .length
  2. Object.entries (myObject) .length
  3. Object.keys (myObject) .length

하나는 빠르게 중에서 3 위의 어느
siluveru 키란 쿠마르

Object.values ​​(myObject) .length
tdjprog

어떻게 말할 수 있습니까 Object.values ​​(myObject) .length 가 더 빠릅니다 어떤 예가 있습니까
siluveru kiran kumar

콘솔에서 다음을 시도하십시오.var myObject = {}; for (let i=0; i<10000000; i++) myObject[i] = i;
tdjprog

Object.values ​​(myObject) .length가 더 빠른 이유 Object.entries (myObject) .length 가 언젠가 후에도 출력을 제공하지 않는 이유는 무엇입니까? 감사합니다 @ tdjprog
siluveru kiran kumar

10

당신이 사용하는 경우 AngularJS와를 필터를 생성하며 다음과 같은 다른 예제의에서 코드를 사용하여 사물에게 AngularJS와 방법을 할 수 1.X :

// Count the elements in an object
app.filter('lengthOfObject', function() {
  return function( obj ) {
    var size = 0, key;
    for (key in obj) {
      if (obj.hasOwnProperty(key)) size++;
    }
   return size;
 }
})

용법

컨트롤러에서 :

$scope.filterResult = $filter('lengthOfObject')($scope.object)

또는 당신의 관점에서 :

<any ng-expression="object | lengthOfObject"></any>

4
OP는 AngularJS 버전을 요청하지 않았습니다. 이것은 질문에 대한 올바른 답변이 아닙니다.
Francisco Hodge

10

가장 간단한 방법은 다음과 같습니다

Object.keys(myobject).length

여기서 myobject는 원하는 길이의 객체입니다.


2
이것은 기존의 대답 과 반복되는 것으로 보인다 .
Pang

@Pang은 동의했으며 다른 답변과 같은 추가 컨텍스트를 제공하지 않습니다.
신비로운

8

Internet Explorer 8 이하를 지원하지 않아도되는 경우 다음 두 단계를 적용하여 개체의 속성 수를 쉽게 얻을 수 있습니다.

  1. 열거 할 수 Object.keys()있는 속성의 이름 만 포함 하거나 열거Object.getOwnPropertyNames() 할 수없는 속성의 이름도 포함하려는 배열을 가져 오려면 실행하십시오 .
  2. .length해당 배열 의 속성을 가져옵니다.

이 작업을 두 번 이상 수행해야하는 경우이 논리를 함수로 래핑 할 수 있습니다.

function size(obj, enumerablesOnly) {
    return enumerablesOnly === false ?
        Object.getOwnPropertyNames(obj).length :
        Object.keys(obj).length;
}

이 특정 기능을 사용하는 방법 :

var myObj = Object.create({}, {
    getFoo: {},
    setFoo: {}
});
myObj.Foo = 12;

var myArr = [1,2,5,4,8,15];

console.log(size(myObj));        // Output : 1
console.log(size(myObj, true));  // Output : 1
console.log(size(myObj, false)); // Output : 3
console.log(size(myArr));        // Output : 6
console.log(size(myArr, true));  // Output : 6
console.log(size(myArr, false)); // Output : 7

데모 는 이 바이올린 을 참조하십시오 .


8

Object.keys(myObject).length객체 / 배열의 길이를 얻는 데 사용

var myObject = new Object();
myObject["firstname"] = "Gareth";
myObject["lastname"] = "Simpson";
myObject["age"] = 21;

console.log(Object.keys(myObject).length); //3

8
const myObject = new Object();
myObject["firstname"] = "Gareth";
myObject["lastname"] = "Simpson";
myObject["age"] = 21;

console.log(Object.keys(myObject).length)

// o/p 3

7

위의 일부 변형은 다음과 같습니다.

var objLength = function(obj){    
    var key,len=0;
    for(key in obj){
        len += Number( obj.hasOwnProperty(key) );
    }
    return len;
};

hasOwnProp을 통합하는 조금 더 우아한 방법입니다.


6

James Cogan의 답변에 대한 다른 버전이 있습니다. 인수를 전달하는 대신 Object 클래스를 프로토 타입 화하고 코드를 더 깨끗하게 만듭니다.

Object.prototype.size = function () {
    var size = 0,
        key;
    for (key in this) {
        if (this.hasOwnProperty(key)) size++;
    }
    return size;
};

var x = {
    one: 1,
    two: 2,
    three: 3
};

x.size() === 3;

jsfiddle 예 : http://jsfiddle.net/qar4j/1/


6
Object.prototype- 나쁜 생각.
Dziad Borowy

@tborychowski 이유를 설명해 주시겠습니까?
Mohamad

여기 하나의 기사가 있습니다 : bit.ly/1droWrG . 나는 그것이 완료되어서는 안된다고 말하는 것이 아니라, 당신이 이것을하기 전에 모든 영향을 알아야한다는 것입니다.
Dziad Borowy

내장 프로토 타입을 확장하거나 속성 (예 : 원숭이 패치)을 폴리 필하려는 경우 올바르게 수행하십시오. 호환성을 위해 먼저 속성이 존재하는지 확인한 다음 속성을 열거 할 수 없도록 설정하여 자체 키를 만드십시오. 생성 된 개체는 오염되지 않습니다. 메소드의 사용 실제 방법을 . 내 권장 사항 : 내장 예제 와 같이 가능한 한 가깝게 동작하는 방법을 추가하는 방법을 보여주는 다음 예 를 따르십시오 .
user4642212

5

Object.keys(obj).length모든 객체를 사용 하여 길이를 얻을 수 있습니다 . Object.keys는 해당 배열 의 길이를 사용하여 해당 오브젝트의 길이를 찾는 데 유용한 모든 오브젝트 (속성)를 포함하는 배열을 리턴합니다 . 이를 위해 함수 를 작성할 수도 있습니다 . 더 독창적 인 getter 속성과 함께 창의력을 발휘 하고 메서드 를 작성해 보겠습니다 .

function objLength(obj)
{
  return Object.keys(obj).length;
}

console.log(objLength({a:1, b:"summit", c:"nonsense"}));

// Works perfectly fine
var obj = new Object();
obj['fish'] = 30;
obj['nullified content'] = null;
console.log(objLength(obj));

// It also works your way, which is creating it using the Object constructor
Object.prototype.getLength = function() {
   return Object.keys(this).length;
}
console.log(obj.getLength());

// You can also write it as a method, which is more efficient as done so above

Object.defineProperty(Object.prototype, "length", {get:function(){
    return Object.keys(this).length;
}});
console.log(obj.length);

// probably the most effictive approach is done so and demonstrated above which sets a getter property called "length" for objects which returns the equivalent value of getLength(this) or this.getLength()


3
이것은 aeosynth의 답변과 어떻게 다릅니 까?
Peter Mortensen

그것은 함수와 전역 객체 메소드로 만드는 방법을 보여주기 때문입니다 (더 객체 지향적이며 어떤 형태의 캡슐화를 사용합니다). 그러나 aeosynth의 대답 은 그렇지 않습니다.
신비로운

내장 프로토 타입을 확장하거나 속성 (예 : 원숭이 패치)을 폴리 필하려는 경우 올바르게 수행하십시오. 호환성을 위해 먼저 속성이 존재하는지 확인한 다음 속성을 열거 할 수 없도록 설정하여 자체 키를 만드십시오. 생성 된 개체는 오염되지 않습니다. 메소드의 사용 실제 방법을 . 내 권장 사항 : 내장 예제 와 같이 가능한 한 가깝게 동작하는 방법을 추가하는 방법을 보여주는 다음 예 를 따르십시오 .
user4642212

또한 메소드 작성이 어떻게 "보다 효율적"입니까?
user4642212

5

항상 일반 배열 Object.getOwnPropertyNames(myObject).length과 동일한 결과를 얻도록 할 수 있습니다 [].length.


1
Object.keys()열거 가능한 속성의 이름 만 포함 된 배열을 반환합니다. ALL 속성을 가진 배열을 원한다면 Object.getOwnPropertyNames()대신 사용해야 합니다. developer.mozilla.org/en/docs/Web/JavaScript/Reference/…를
John Slegers

3
이것은 aeosynth의 답변과 어떻게 다릅니 까?
Peter Mortensen

4

다음을 사용하여 Object의 길이를 찾을 수 있습니다.

Object.values(myObject).length

4

게임에 약간 늦었지만 이것을 달성하는 좋은 방법 (IE9 + 만 해당)은 length 속성에 매직 게터를 정의하는 것입니다.

Object.defineProperty(Object.prototype, "length", {
    get: function () {
        return Object.keys(this).length;
    }
});

그리고 당신은 그렇게 사용할 수 있습니다 :

var myObj = { 'key': 'value' };
myObj.length;

줄 것이다 1.


1
프로토 타입 수정에 대한 주장을 제쳐두고, 개인적으로 버그로 인한 버그는 없었으며 JavaScript의 장점 중 하나입니다.
MacroMan

3

아래는 JavaScript를 버린 사람들을위한 CoffeeScript의 James Coglan 답변입니다. :)

Object.size = (obj) ->
  size = 0
  size++ for own key of obj
  size

1
당신은 아마도 size++ for own key of obj( own key커피 스크립트에서 문법 설탕 인) 말하고 싶을 것입니다 . hasOwnProperty객체가 실제로 그러한 속성을 가질 때 깨지기 때문에 객체에서 직접 사용 하는 것은 위험합니다.
Konrad Borowski

2
OP는 CoffeeScript 버전을 요청하지 않았으며 태그가 붙어 있습니다. 이것은 질문에 대한 올바른 답변이 아닙니다.
Francisco Hodge
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.