空のJavaScriptオブジェクトをテストするにはどうすればよいですか?


3110

AJAX要求の後、アプリケーションが次のような空のオブジェクトを返すことがあります。

var a = {};

どうすれば確認できますか?


7
JSON.jsスクリプトを使用していますか?または他のJSONライブラリ。次に、JSON.encode()関数を使用してvarを文字列に変換し、それをテストできます。
Thevs 2009年

if( Object.entries(a).length > 0){ //do }
ムハンマドシャザド

回答:


5426

ECMA 5+

// because Object.keys(new Date()).length === 0;
// we have to do some additional check
Object.keys(obj).length === 0 && obj.constructor === Object

ただし、これにより不要な配列(の戻り値keys)が作成されることに注意してください。

ECMA 5以前:

function isEmpty(obj) {
  for(var prop in obj) {
    if(obj.hasOwnProperty(prop)) {
      return false;
    }
  }

  return JSON.stringify(obj) === JSON.stringify({});
}

jQuery

jQuery.isEmptyObject({}); // true

ロダッシュ

_.isEmpty({}); // true

下線

_.isEmpty({}); // true

ホーク

Hoek.deepEqual({}, {}); // true

ExtJS

Ext.Object.isEmpty({}); // true

AngularJS(バージョン1)

angular.equals({}, {}); // true

ラムダ

R.isEmpty({}); // true

22
jQueryとアンダースコアの間のパフォーマンステストは次のとおりですjsperf.com/isempty-vs-isemptyobject/6
Mikhail

20
Object.keys(new Date()).length === 0; したがって、この答えは誤解を招く可能性があります。
cjbarth 2016年

6
物事を文字列化する代わりに、この事実を利用することもできます:(new Date()).constructor === Date、または逆に({}).constructor === Object
John Nelson

2
angular.equals({}、{});
Jeremy A. West

11
Object.keys()列挙不可能なプロパティやシンボルはチェックしません。代わりにを使用する必要がObject.getOwnPropertyNames()ありObject.getOwnPropertySymbols()ます。また、Object.getPrototypeOf()オブジェクトのプロトタイプを取得する正しい方法です。obj.constructor簡単に偽造することができます。例:function Foo() {} Foo.prototype.constructor = Object; (new Foo()).constructor === Object // true
ジェシー

863

これを行う簡単な方法はありません。プロパティを明示的にループする必要があります:

function isEmpty(obj) {
    for(var prop in obj) {
        if(obj.hasOwnProperty(prop))
            return false;
    }

    return true;
}

場合はECMAScript 5のサポートが提供されています、あなたが使用することができますObject.keys()代わりに:

function isEmpty(obj) {
    return Object.keys(obj).length === 0;
}

56
これは正常に機能します。つまり、次のように機能します。} falseを返します。}
Nicholas Kreidberg

36
この関数でtrueとfalseを逆にする必要はありませんか?
namtax

25
@namtax:いいえ-関数は名前が付けられているisEmpty()のでfalse、プロパティがある場合に返されるはずです
Christoph

6
空のオブジェクトはデフォルトのObjectクラスを拡張しますが、オブジェクトのプロトタイプが変更された場合、簡略化された関数は失敗します:Object.prototype.a = 'hi'; var obj = {}; alert(obj.a); //「hi」を出力するisEmpty(obj)// falseを返す
venimus

29
2番目の例はO(n)時間の複雑さとO(n)空間の複雑であるため、使用しないでください。最初の例はO(1)です。
ブライアン

572

同じ問題を抱えているがjQueryを使用している場合は、jQuery.isEmptyObjectを使用できます。


43
やあ!IE 8の問題のデバッグに数時間を費やしただけで、問題の原因はjQuery.isEmptyObjectであることがわかりました。オブジェクトが空の場合はtrueを返します。
MFD3000 2011

162
質問がjQueryに関するものではないのに、なぜjQueryを含む回答を投稿するのですか?
Eru

47
リターンが真のオブジェクトが空の場合(名前がそれを示して)、:ドキュメンタリーが言うので、私はその昔のコメントを知っているが、私はMFD3000 @あなたの質問に疑問
АлександрФишер

21
そのような基本的なタスクにjQueryを含めることは、私が正解と呼ぶものではありません。今日のjQueryはほとんど一般的ですが、それでも非常に有能な言語自体を中心に構築されていることを忘れてはなりません。
Pablo Mescher、2013

54
これらのコメントでの典型的なJSのうなり声。Web上のJavaScriptの大部分がjQueryで作成されていることを誰もが知っているので、オブジェクトをテストするための組み込みメソッドがすでにある場合は、jQueryのソリューションをここで提供してもまったく問題ありません。助けを求めている何千人もの開発者がこの答えが役に立つと思うでしょう。それを行う唯一の方法は誰も言っていません。使用するソリューションを投稿した男について、誰もエリート主義者を演じていないことに気づきましたunderscore.js...
BadHorsie

276

これは私の好ましい解決策です:

var obj = {};
return Object.keys(obj).length; //returns 0 if empty or an integer > 0 if non-empty


3
@Jero Franzani:いいえ、そうではありません
nikoskip

Object.keys({})。lengthは(for ... in ...)オプションよりも10倍遅くなります。objetcが空かどうかをテストする方法として、これを回避することをお勧めします。
davidhadas

10
Object.keys(new Date()).length === 0; したがって、この答えは誤解を招く可能性があります。
cjbarth 2016年

new Date()オブジェクトではありません。nd = new Date(); nd.constructor === Object;結果はfalseです。
ポー

204

Underscore.jsを使用できます。

_.isEmpty({}); // true

19
または、lodash is empty(lodash.com/docs#isEmpty)を使用することもできますが、それはjQueryソリューションを使用する場合とどのように違うのですか?それでも、追加のライブラリをインストールする必要があります。バニラのjavascriptソリューションが目的だと思います。
tfmontague 2014

10
Node.jsのバックエンドでJSを使用する場合は異なります。バックエンドでjQuery(主にDOM操作に使用されるフロントエンドライブラリ)を使用したいと思う人はほとんどいません。
Nahn

3
@tfmontagueの下線は、jQがクライアント側にあるのとほぼ同じくらいユビキタスなノードアプリで非常に一般的です。すでにアンダースコアが必要でしたが、この機能があることに気づきませんでした
rw-nandemo

5
アンダースコアはlodashに置き換えられています。代わりにそれを使用してください。
demisx 2015

2
日付タイプには注意してください。isEmpty
jashkenas /

116
if(Object.getOwnPropertyNames(obj).length === 0){
  //is empty
}

http://bencollier.net/2011/04/javascript-is-an-object-empty/を参照してください


5
これには、必要に応じて、列挙できないプロパティが含まれます。

Object.getOwnPropertyNames({})。lengthは(for ... in ...)オプションよりも10倍遅くなります。objetcが空かどうかをテストする方法として、これを回避することをお勧めします。
davidhadas

4
Object.getOwnPropertyNames(new Date()).length === 0; したがって、この答えは誤解を招く可能性があります。
cjbarth 2016年

80

JSON.stringifyの使用はどうですか?ほとんどすべての最新ブラウザーで使用できます。

function isEmptyObject(obj){
    return JSON.stringify(obj) === '{}';
}

23
return(JSON.stringify(obj)== '{}')
Vic

26
これは遅く、速度はこの種のユーティリティにとって重要です。ここで簡単なパフォーマンステスト:jsperf.com/empty-object-test

1
これは非常に遅いオプションです-代わりに(for ... in)オプションを使用することをお勧めします
davidhadas

2
また、関数を含むオブジェクトに対しては機能しません。
フェリックスクリング

1
また、オブジェクトに循環参照がある場合にもエラーがスローされます。そのため、処理速度が遅く、信頼性が低く、エラーが発生して他のすべてが破壊される可能性があります。使用する理由はありません。
Burak

62

私はちょうど同じような状況に遭遇しました。私はJQueryを使用したくなかったし、純粋なJavascriptを使用してこれを実行したかった。

そして私がしたことは、次の条件を使用し、それは私のために働いた。

var obj = {};
if(JSON.stringify(obj) === '{}') { //This will check if the object is empty
   //Code here..
}

等しくない場合は、これを使用します。 JSON.stringify(obj) !== '{}'

このJSFiddleをチェックしてください


4
JSON.stringifyが特に例外をスローするため、循環参照のあるオブジェクトでは失敗します。
Pedro MontotoGarcía14年

1
@PedroMontotoGarcíaでは、空のオブジェクトが循環参照をどのように持つのでしょうか。
KthProg 2015年

8
オブジェクトが空でない場合(そして、オブジェクトでも機能するはずです)。
Pedro MontotoGarcía2015

これは@Ateszkiですでに言及されているようで、オブジェクトが空でないかどうかを確認する最も遅い方法の1つです。
2015年

ああ、はい..見逃しました 私はこのjavascriptを達成したいと思った状況に遭遇し、少し考えた後、私はこの方法を理解しました。@Ateszki、私はあなたがした方法にもかかわらず。:-)ところで、これにはたくさんの答えがあったので、あなたの答えを逃しました。
Anish Nair

60

古い質問ですが、問題がありました。オブジェクトが空でないかどうかを確認することが唯一の目的である場合、JQueryを含めることは実際には良い考えではありません。代わりに、JQueryのコードに深く入り込むだけで、答えが得られます。

function isEmptyObject(obj) {
    var name;
    for (name in obj) {
        if (obj.hasOwnProperty(name)) {
            return false;
        }
    }
    return true;
}

5
これは、他のプロセスがプロトタイプをベースオブジェクトに追加していない場合にのみ役立ちます。これを本当に機能させるには、obj.hasOwnProperty(name)をテストする必要があります
mpemburn

1
これは2009
。– Dan Dascalescu

39

新しいブラウザを使用している場合は、簡単な方法があります。 Object.keys(obj).length == 0


1
どこんkeysプロパティから来ますか?

2
それはだ標準的な方法はECMAScript 5.1で
ダウンロード

1
上記のコメントに4つの賛成票を含めるにはどうすればよいですか?はい、これObject.keysは標準的な方法ですが、オブジェクトにはkeysプロパティがありません。したがって、このコードは、偶然偶然に名前が付けられたプロパティにkeylength0のプロパティが付けられている場合を除いて、オブジェクトを空として報告します。恐ろしい!
クレイジーな2015

Object.keys(new Date()).length === 0; したがって、この答えは誤解を招く可能性があります。
cjbarth 2016年

11
@scravy ObjectはクラスObjectです。オブジェクトには、オブジェクトを引数として受け入れる 'keys'という名前の静的メソッドがあります。このメソッドは、文字列がプロパティ名である文字列の配列を返します。developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
SGNL

34

パフォーマンス

今日2020.01.17私は選択したソリューションについて、Chrome v79.0、Safari v13.0.4、Firefox v72.0のMacOs HighSierra 10.13.6でテストを実行します。

結論

  • for-in(A、J、L、M)に基づくソリューションが最速
  • JSON.stringify(B、K)に基づくソリューションは遅い
  • 驚くべきことに、Object(N)に基づくソリューションも遅い

ここに画像の説明を入力してください

詳細

以下のスニペットは、15のソリューションを示しています。あなたがあなたのマシン上でパフォーマンステストを実行したい場合はクリックHERE

ここに画像の説明を入力してください


これは、すべてがfalseまたはtrueの戻りに基づいているため、意味がありません。プログラミングでは、ifステートメントまたは三項演算子が必要になる場合があります。just fyi
クリスチャンマシュー

1
これが最良の答えです。ありがとうございます。最初の解決策は魅力のように機能します
Carlos Jesus Arancibia Taborga

33

Object.keys(obj).lengthの使用(上記のECMA 5+で推奨)は、空のオブジェクトに対して10倍遅くなります!古い学校の(for ... in)オプションを使用します。

Node、Chrome、Firefox、IE 9でテスト済みで、ほとんどのユースケースで次のことが明らかになっています。

  • (for ... in ...)が最速のオプションです!
  • Object.keys(obj).lengthは、空のオブジェクトでは10倍遅くなります
  • JSON.stringify(obj).lengthは常に最も遅いです(驚くべきことではありません)
  • Object.getOwnPropertyNames(obj).lengthは、一部のシステムではObject.keys(obj).lengthがはるかに長くなるよりも時間がかかります。

結論として、最終的なパフォーマンスは次のとおりです。

function isEmpty(obj) { 
   for (var x in obj) { return false; }
   return true;
}

または

function isEmpty(obj) {
   for (var x in obj) { if (obj.hasOwnProperty(x))  return false; }
   return true;
}

詳細なテスト結果とテストコードについては、オブジェクトは空ですか?


Object.keys遅いですが、コードは少なくなります。これが呼び出される小さなページで、おそらく10回...追加のコードの追加の解析時間を考慮すると、これはまだ遅くなりますか?
ヤンキー

32

Objectキーの数を確認できます。

if (Object.keys(a).length > 0) {
    // not empty
}

8
すでに与えられた回答にコメントを追加して、より悪い回答をするのはなぜですか?stackoverflow.com/a/32108184/4229159これは4月
Alejandro Vales

非常に大きなオブジェクトがあり、オブジェクトが空かどうかを確認するためだけに各ループでそれを行う場合はどうすればよいですか?
StefansArya 2018年

27
  1. ただの回避策です。データがない場合、サーバーは特別なプロパティを生成できますか?

    例えば:

    var a = {empty:true};

    その後、AJAXコールバックコードで簡単に確認できます。

  2. それを確認する別の方法:

    if (a.toSource() === "({})")  // then 'a' is empty

編集:JSONライブラリ(fe JSON.js)を使用している場合は、JSON.encode()関数を試して、空の値の文字列に対して結果をテストできます。


6
toSource()は非標準であり、IEやOpera(そして私がチェックしなかった他のブラウザでも動作する可能性があります)で動作しません
Christoph

4
@Thevs:ECMA-262の現在のバージョンの別のコピーを持っている可能性がありますが、私のtoSourceセクション15.2.4にプロパティをリストしていません。MDCによると、それはJS1.3(つまり、Netscape Navigator 4.06)で導入されましたが、ECMA-262、第3版ではありません!
クリストフ

4
@Thevs:まあ、少なくとも2つの重要なブラウザーベンダーはそれを実装しなかったので、事実上の標準とは言えず、ECMA-262にはないため、実際のブラウザーでもありません...
Christoph

4
それが機能する場合でも、これを行うにtoSource()は恐ろしい方法です(現状のままJSON.encode())。オブジェクト全体が空かどうかを確認するために、オブジェクト全体を表す文字列を作成する必要があります。物事を文字列に変換するオーバーヘッドがありますが、オブジェクトに100万個のプロパティがある場合、100万個のものを変換する必要があります。
Jasper

4
@Thevsのオーバーヘッドは、同じ程度の大きさであっても(すべての状況下にあるかどうかはわかりませんが)大きいです。ただし、その答えには、異なるプロパティが見つかり次第falseが返されるため、ストーリーがすべて異なるようになります...
Jasper

25

オブジェクトが空かどうかを判別する完全な関数を作成しました。

これは、使用していますObject.keysから、ECMAScriptの5最高のパフォーマンス(参照達成することが可能であれば(ES5)機能適合表を古いエンジン(ブラウザ)のための最も互換性のあるアプローチ)とフォールバックを。

解決

/**
 * Returns true if specified object has no properties,
 * false otherwise.
 *
 * @param {object} object
 * @returns {boolean}
 */
function isObjectEmpty(object)
{
    if ('object' !== typeof object) {
        throw new Error('Object must be specified.');
    }

    if (null === object) {
        return true;
    }

    if ('undefined' !== Object.keys) {
        // Using ECMAScript 5 feature.
        return (0 === Object.keys(object).length);
    } else {
        // Using legacy compatibility mode.
        for (var key in object) {
            if (object.hasOwnProperty(key)) {
                return false;
            }
        }
        return true;
    }
}

これがこのコードの要点です。

そして、デモと簡単なテストを行うJSFiddle次に示します。

誰かのお役に立てば幸いです。乾杯!


3
これはnullオブジェクトに対して失敗します。

@torazaburoさん、こんにちは!お知らせいただきありがとうございます!すべてのソースを正しい実装で更新しました。
スラバフォミンII 2014

1
Object.keys({})。lengthは(for ... in ...)オプションよりも10倍遅くなります。objetcが空かどうかをテストする方法として、これを回避することをお勧めします。
davidhadas

1
Object.keys(new Date()).length === 0; したがって、この答えは誤解を招く可能性があります。
cjbarth 2016年

19

これを使っています。

function isObjectEmpty(object) {
  var isEmpty = true;
  for (keys in object) {
     isEmpty = false;
     break; // exiting since we found that the object is not empty
  }
  return isEmpty;
}

例えば:

var myObject = {}; // Object is empty
var isEmpty  = isObjectEmpty(myObject); // will return true;

// populating the object
myObject = {"name":"John Smith","Address":"Kochi, Kerala"}; 

// check if the object is empty
isEmpty  = isObjectEmpty(myObject); // will return false;

ここから

更新

または

isEmptyObjectのjQuery実装を使用できます

function isEmptyObject(obj) {
  var name;
  for (name in obj) {
    return false;
  }
  return true;
}

こんにちは。この関数を数値またはブール値trueまたはfalseでテストすると、trueが返され、これは正しい結果ではありません。isObjectEmpty(true)。isObjectEmpty(false)。isObjectEmpty(1)
イマン

2
データ型がオブジェクトであるかどうかではなく、オブジェクトが空であるかどうかをチェックしています。あなたのケースでは、我々があれば(===「オブジェクト」typeof演算){...}のようなものを必要とするそのオブジェクトかどうかを確認してください
kiranvj

15

次の例は、JavaScriptオブジェクトが空かどうかをテストする方法を示しています。

スクリプトはES6で動作します。

const isEmpty = (obj) => {
    if (obj === null ||
        obj === undefined ||
        Array.isArray(obj) ||
        typeof obj !== 'object'
    ) {
        return true;
    }
    return Object.getOwnPropertyNames(obj).length === 0;
};
console.clear();
console.log('-----');
console.log(isEmpty(''));           // true
console.log(isEmpty(33));           // true
console.log(isEmpty([]));           // true
console.log(isEmpty({}));           // true
console.log(isEmpty({ length: 0, custom_property: [] })); // false
console.log('-----');
console.log(isEmpty('Hello'));      // true
console.log(isEmpty([1, 2, 3]));    // true
console.log(isEmpty({ test: 1 }));  // false
console.log(isEmpty({ length: 3, custom_property: [1, 2, 3] })); // false
console.log('-----');
console.log(isEmpty(new Date()));   // true
console.log(isEmpty(Infinity));     // true
console.log(isEmpty(null));         // true
console.log(isEmpty(undefined));    // true


15

Object.entries()の ES2017仕様に従って、最新のブラウザを使用したチェックは簡単です-

Object.entries({}).length === 0

3
これを使用するメリットはありますObject.keysObject.values
かすかな信号2019年

これらを使用した@faintsignalは完全に正常です。コメントにそれが見つからなかったので、私はエントリを追加しました。
Vikrant

13
function isEmpty(obj) {
  for(var i in obj) { return false; }
  return true;
}

4
これは、たとえば、JavaScriptライブラリがObjectプロトタイプチェーンを介してメソッドで拡張された場合にも当てはまります。これは、列挙可能であり、for inステートメントが列挙可能なプロパティをループするためです。
viam0Zah 2009


12

少なくとも1つのキーがあるかどうかを確認します。空ではないと言えば十分でしょう。

typeof obj !== "undefined" && Boolean(Object.keys(obj)[0])

1
最初のキーがfalse値を返すとどうなりますか?結果falseは正しくありません。
Jimmy Obonyo Abor

私はそれをテストしました。実用的な例を挙げていただけますか?
チューダーモラー

1
これは短くて簡潔ですが、オブジェクトが未定義の場合は実行時エラーになります
Mrinmoy

11

内部では、すべてのライブラリのすべての空のチェックメソッドがオブジェクトキーチェックロジックを使用しています。それをわかりやすくするための奇妙な方法です。メソッドに入れることができますここで説明します

for(key in obj){
   //your work here.
 break;
}

これはES5で進化しました。簡単に言うとObject.Keys、オブジェクトをパラメーターとして受け取るメソッドを使用して、オブジェクトのキーの長さを確認できます。

if(Object.keys(obj).length > 0){
 //do your work here
}

または、Lodashを使用している場合(使用する必要があります)。

 _.isEmpty(obj) //==true or false

whileステートメントは、ifステートメントを作成する奇妙な方法として正しいのですが、あなたの後にコードを保守する人を混乱させる可能性があります。
Soren、2014年

10


jQueryや他のライブラリを 使用しなかったこの単純なコードを使用できます

var a=({});

//check is an empty object
if(JSON.stringify(a)=='{}') {
    alert('it is empty');
} else {
    alert('it is not empty');
}

JSONクラスとその関数(解析文字列化)は非常に便利ですが、IE7にはこの単純なコードhttp://www.json.org/js.htmlで修正できるといういくつかの問題があります

その他の単純な方法(最も単純な方法):jQueryまたはJSONオブジェクト
を使用せずにこの方法を使用できます。

var a=({});

function isEmptyObject(obj) {
    if(typeof obj!='object') {
        //it is not object, so is not empty
        return false;
    } else {
        var x,i=0;
        for(x in obj) {
            i++;
        }
        if(i>0) {
            //this object has some properties or methods
            return false;
        } else {
            //this object has not any property or method
            return true;
        }
    }
}

alert(isEmptyObject(a));    //true is alerted

JSON.stringifyオブジェクトが関数や「未定義」などの文字列化できないプロパティを含む場合、解決策は失敗しますが、これは例外的なケースです。

10

私が見つけた最良の方法:

function isEmpty(obj)
{
    if (!obj)
    {
        return true;
    }

    if (!(typeof(obj) === 'number') && !Object.keys(obj).length)
    {
        return true;
    }

    return false;
}

のために働く:

    t1: {} -> true
    t2: {0:1} -: false
    t3: [] -> true
    t4: [2] -> false
    t5: null -> true
    t6: undefined -> true
    t7: "" -> true
    t8: "a" -> false
    t9: 0 -> true
    t10: 1 -> false

3
0は実際には数値であるため、空ではありません。それ以外はすべて問題ありませんが、修正は簡単です。最初のifステートメントにこれを追加します。if (!obj && obj !== 0)
mjwrazor 2017年

9

私の見解:

function isEmpty(obj) {
    return !Object.keys(obj).length > 0;
}

var a = {a:1, b:2}
var b = {}

console.log(isEmpty(a)); // false
console.log(isEmpty(b)); // true

ただ、すべてのブラウザがObject.keys()現在実装しているとは思いません。


2
Object.keys(new Date()).length === 0; したがって、この答えは誤解を招く可能性があります。
cjbarth 2016年

3
キーを公開しないにもかかわらず、日付が常に「完全」であると見なすかどうかによって異なります。しかし、それがあなたの計画である場合、Dateコンストラクターのチェックの補足のinstanceofチェックを追加することは良いオプションであることに同意します。
NiKo 2016年


7

警告!JSONの制限に注意してください。

javascript:
  obj={  f:function(){}  };
  alert( "Beware!! obj is NOT empty!\n\nobj = {  f:function(){}  }" + 
               "\n\nJSON.stringify( obj )\n\nreturns\n\n" +
                        JSON.stringify( obj ) );

ディスプレイ

    注意してください!objは空ではありません!

    obj = {f:function(){}}

    JSON.stringify(obj)

    戻り値

    {}

7

正解は次のとおりです。

const isEmptyObject = obj =>
  Object.getOwnPropertyNames(obj).length === 0 &&
  Object.getOwnPropertySymbols(obj).length === 0 &&
  Object.getPrototypeOf(obj) === Object.prototype;

これは以下をチェックします:

  • オブジェクトには独自のプロパティはありません(列挙可能性に関係なく)。
  • オブジェクトには独自のプロパティシンボルはありません。
  • オブジェクトのプロトタイプは正確Object.prototypeです。

つまり、オブジェクトはで作成されたオブジェクトと区別できません{}


6

Thevsの回答に加えて:

var o = {};
alert($.toJSON(o)=='{}'); // true

var o = {a:1};
alert($.toJSON(o)=='{}'); // false

それはjquery + jquery.jsonです


JSONは円形のオブジェクト構造では機能しないため、JSONの使用は好きではありません。
itdoesntwork

2
ページがjQueryをロードする場合は、を使用して$.isEmptyObject()、自明ではない変換でサイクルを無駄にしないでください。
スキーヤーページ、2015

6

Sugar.JSは、この目的のために拡張オブジェクトを提供します。コードはクリーンでシンプルです:

拡張オブジェクトを作成します。

a = Object.extended({})

サイズを確認してください:

a.size()
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.