জাভাস্ক্রিপ্টে অবজেক্টের কোনও বৈশিষ্ট্য রয়েছে কিনা তা কীভাবে পরীক্ষা করবেন?


167

ধরে নিচ্ছি আমি ঘোষণা করছি

var ad = {}; 

এই বস্তুটিতে কোনও ব্যবহারকারীর সংজ্ঞায়িত বৈশিষ্ট্য থাকবে কিনা তা আমি কীভাবে পরীক্ষা করতে পারি?

উত্তর:


86

আপনি নিম্নলিখিত হিসাবে আপনার বস্তুর বৈশিষ্ট্য লুপ করতে পারেন:

for(var prop in ad) {
    if (ad.hasOwnProperty(prop)) {
        // handle prop as required
    }
}

hasOwnProperty()অবজেক্টটির প্রত্যক্ষ সম্পত্তি হিসাবে নির্দিষ্ট সম্পত্তি রয়েছে কি না এবং অবজেক্টের প্রোটোটাইপ চেইন থেকে উত্তরাধিকার সূত্রে প্রাপ্ত নয় তা নির্ধারণের জন্য পদ্ধতিটি ব্যবহার করা গুরুত্বপূর্ণ ।

সম্পাদন করা

মন্তব্যগুলি থেকে: আপনি কোনও কোডটিতে সেই কোডটি রাখতে পারেন এবং মন্তব্যটি যে অংশে পৌঁছেছে ততক্ষণেই এটি মিথ্যা ফিরিয়ে দিতে পারেন

কর্মক্ষমতা পরীক্ষা

অবজেক্ট.কিজ বনামের জন্য পরীক্ষা .. কোনও বৈশিষ্ট্যের পরীক্ষার সময়


2
হাই ড্যানিয়েল, আসলে আমি কোনও ডিভাইসটিতে ব্যবহারকারী-সংজ্ঞায়িত যথাযথ সামগ্রী রয়েছে কিনা তা যাচাই করার জন্য একটি ডিভাইস সন্ধান করছি। নির্দিষ্ট সম্পত্তি বিদ্যমান কিনা তা যাচাই করার জন্য নয়।
রিকি

7
@ রিকি: আপনি কোনও কোডটিতে সেই কোডটি রাখতে পারেন এবং মন্তব্যটি যে অংশে পৌঁছেছে ততক্ষণেই এটি মিথ্যা ফিরিয়ে দিতে পারেন।
ড্যানিয়েল ভ্যাসালো

8
আমার মনে হয় এই দিনগুলি ব্যবহার Object.keysকরা সবচেয়ে সহজ হবে: var a = [1,2,3];a.something=4;console.log(Object.keys(a))কারণ এটি ইতিমধ্যে ইসিএমএ 5 এর অংশ যা আপনি নিরাপদে এটি চিমিয়ে ফেলতে পারেন: বিকাশকারী.মোজিলা.আর.ইন.ইউএস
ডকস / ওয়েব

2
নোট করুন যে ES5 সহ "এই দিনগুলি", নেটিভ অবজেক্টগুলিতে ume গণনাযোগ্য নিজস্ব সম্পত্তি থাকতে পারে, যেমন Object.defineProperty(obj, 'foo', {enumerable:false, value:'foo'})
রবজি

2
এই সমাধানটি বিদ্যমান কীগুলির জন্য যাচাই করার একটি উপায় , তবে সত্য, দক্ষ এবং সবচেয়ে সঠিক উত্তরটি Object.keys (x)। দৈর্ঘ্যের সাহায্যে নীচে। আপনার নিজের ফাংশন তৈরি করার দরকার নেই, একটি ইতিমধ্যে বিদ্যমান!
দুদেওয়াদ

193

আপনি Object.keysকোনও বস্তুর কীগুলির তালিকা পেতে তার দৈর্ঘ্য পরীক্ষা করতে বিল্ট ইন পদ্ধতিটি ব্যবহার করতে পারেন ।

var x = {};
// some code where value of x changes and than you want to check whether it is null or some object with values

if(Object.keys(x).length > 0){
 // Your code here if x has some properties  
}

13
এই ঠিক এখানে সঠিক উত্তর। উপরের স্বীকৃত উত্তরটি একটি কাজের আশেপাশে এবং কীগুলির সংখ্যা পরীক্ষা করার চেয়ে ব্যয়বহুল; এটি উপায় আরও জ্ঞান করে তোলে ।
দুদেওয়াদ

6
Object.keys ( "mystring"); কীগুলি পাশাপাশি দেয় যা আমি মনে করি অযাচিত। এই উত্তরটি আমার মতে অসম্পূর্ণ।
মাইক ডি ক্লার্ক

2
@ মাইকেডে ক্লার্ক দয়া করে এটি মনোযোগ সহকারে পড়ুন এটি অবজেক্ট.কিজ ("মাইস্ট্রিং") নয়; এটি অবজেক্ট.কিজ (অবজেক্টভ্যারিয়েবলনেম) যা বস্তুর সমস্ত কীগুলির অ্যারে ফিরিয়ে দেবে। উদা: {'x': 'এবিসি', 'ওয়াই': 'ডিফ'} এটি হবে ['x', 'y']
ধাওয়াল চৌধুরী চৌধুরী

3
@ ধাওয়ালচৌধুরী আমার মন্তব্যের জবাব দেওয়ার জন্য আপনাকে ধন্যবাদ। যখন আমি এই কোডটি চেষ্টা করি var str = "MyString"; Object.keys(str);, কনসোলটি প্রতিটি চরিত্রের জন্য 0 থেকে 7 পর্যন্ত 8 টি কী আউটপুট করে। বা আমি এখনও উত্তর বুঝতে পারি না।
মাইক ডি ক্লার্ক

6
@ মাইকেডে ক্লার্ক তবে এগুলি কেবলমাত্র সমাধানগুলির জন্য কেবল স্ট্রিং প্লেসের জন্য নয়।
ধাওয়াল চৌধুরী চৌধুরী

111

একটি সাধারণ ফাংশন তৈরি সম্পর্কে কী?

function isEmptyObject(obj) {
  for(var prop in obj) {
    if (Object.prototype.hasOwnProperty.call(obj, prop)) {
      return false;
    }
  }
  return true;
}

isEmptyObject({}); // true
isEmptyObject({foo:'bar'});  // false

hasOwnPropertyপদ্ধতি কল সরাসরি উপর Object.prototypeশুধুমাত্র সামান্য আরো যোগ করার জন্য নিরাপত্তা , একটি স্বাভাবিক ব্যবহার করে নিম্নলিখিত কল্পনা obj.hasOwnProperty(...)কল:

isEmptyObject({hasOwnProperty:'boom'});  // false

দ্রষ্টব্য: (ভবিষ্যতের জন্য) উপরোক্ত পদ্ধতিটি for...inবিবৃতিটির উপর নির্ভর করে এবং এই বিবৃতিটি কেবলমাত্র গণ্যমান্য বৈশিষ্ট্যগুলির উপরে পুনরাবৃত্তি করে, বর্তমানে সর্বাধিক বহুল প্রয়োগিত ইসমাস্ক্রিপ্ট স্ট্যান্ডার্ড (তৃতীয় সংস্করণ) এ প্রোগ্রামারটির অ-গুণযোগ্য বৈশিষ্ট্য তৈরি করার কোনও উপায় নেই ।

তবে এটি এখন ইসমাস্ক্রিপ্টের 5 তম সংস্করণের মাধ্যমে পরিবর্তিত হয়েছে এবং আমরা অণনীয়, অ-লিখিতযোগ্য বা নন-বিযুক্তযোগ্য বৈশিষ্ট্য তৈরি করতে সক্ষম হয়েছি, সুতরাং উপরের পদ্ধতিটি ব্যর্থ হতে পারে , যেমন:

var obj = {};
Object.defineProperty(obj, 'test', { value: 'testVal', 
  enumerable: false,
  writable: true,
  configurable: true
});
isEmptyObject(obj); // true, wrong!!
obj.hasOwnProperty('test'); // true, the property exist!!

এই সমস্যার একটি ECMAScript 5 সমাধান হ'ল:

function isEmptyObject(obj) {
  return Object.getOwnPropertyNames(obj).length === 0;
}

Object.getOwnPropertyNamesপদ্ধতি আয় একটি Arrayনাম ধারণকারী সব নিজের বৈশিষ্ট্য একটি বস্তু, এর গণনীয় বা না , এই পদ্ধতি ব্রাউজার বিক্রেতাদের দ্বারা প্রতিষ্ঠিত হচ্ছে, এটি ইতিমধ্যে ক্রোম 5 বেটা এবং সর্বশেষ ওয়েবকিট নাইট গুরুত্বপূর্ণ জৈব ফাংশন আছে।

Object.defineProperty এই ব্রাউজারগুলিতে এবং সর্বশেষতম ফায়ারফক্স 3.7 আলফা প্রকাশে উপলব্ধ।


1
অবজেক্ট.প্রোটোটাইপ.হসনঅনপ্রপ্রেটি.সিএল (আপত্তি, প্রোপ) এর কী কী সুবিধা?
কেসি চু

3
@ ক্যাসি, সম্পাদিত, যদি কোনও বস্তু hasOwnPropertyসম্পত্তিকে ওভাররাইড করে তবে ফাংশনটি ক্র্যাশ হয়ে যেতে পারে ... আমি জানি আমি কিছুটা বিড়ম্বনা ... তবে কখনও কখনও আপনি জানেন না যে আপনার কোডটি কোন ধরণের পরিবেশে ব্যবহৃত হবে তবে আপনি আপনি কী পদ্ধতিটি ব্যবহার করতে চান তা আপনি জানেন ...
সিএমএস

2
এই প্রশ্নের উত্তর দেওয়ার জন্য +1 ... এবং ভবিষ্যতের অন্যান্য প্রশ্ন! :)
ড্যানিয়েল ভ্যাসালো

1
মনে রাখবেন, আইই-তে একটি বাগ রয়েছে যেখানে আপনার নাম সহ এমন কোনও সম্পত্তি রয়েছে যা একটি অ-গণনাযোগ্য সম্পত্তির সাথে মিলে যায় Object.prototype, এটি দ্বারা অঙ্কিত হয় না for...in। তাই isEmptyObject({toString:1})ব্যর্থ হবে। এটি একটি দুর্ভাগ্যজনক কারণগুলির মধ্যে একটি যা আপনি সাধারণ উদ্দেশ্যে ম্যাপিং হিসাবে বেশ ব্যবহার করতে পারবেন না Object
ববিসন

1
@ মাইকেলমার্টিন-স্মাকার — কীগুলি কেবলমাত্র অগণিত নিজস্ব সম্পত্তি ফেরত দেয়, তাই এখানে উপযুক্ত নয়।
রবজি

58

সঙ্গে jQuery এর আপনি ব্যবহার করতে পারেন:

$.isEmptyObject(obj); // Returns: Boolean

JQuery 1.4 হিসাবে এই পদ্ধতিটি নিজেই অবজেক্টের উভয় বৈশিষ্ট্য এবং প্রোটোটাইপগুলি থেকে উত্তরাধিকারসূত্রে প্রাপ্ত বৈশিষ্ট্যগুলি পরীক্ষা করে (এতে এটি হ'ল ওপেনপ্রটি ব্যবহার করে না)।

সঙ্গে ECMAScript প্রোগ্রামিং 5 ম সংস্করণ আধুনিক ব্রাউজারে (IE9 + FF4 + Chrome5 + Opera12 + Safari5 + +) আপনি সালে নির্মিত ব্যবহার করতে পারেন Object.keys পদ্ধতি:

var obj = { blah: 1 };
var isEmpty = !Object.keys(obj).length;

বা সাধারণ পুরানো জাভাস্ক্রিপ্ট:

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

33

সর্বাধিক সাম্প্রতিক ব্রাউজারগুলি (এবং node.js) অবজেক্ট.কিগুলি () সমর্থন করে যা আপনার বস্তুর আক্ষরিক সমস্ত কীগুলির সাথে একটি অ্যারের ফিরিয়ে দেয় যাতে আপনি নিম্নলিখিতটি করতে পারেন:

var ad = {}; 
Object.keys(ad).length;//this will be 0 in this case

ব্রাউজার সমর্থন: ফায়ারফক্স 4, ক্রোম 5, ইন্টারনেট এক্সপ্লোরার 9, অপেরা 12, সাফারি 5

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys


13

আপনি যদি আন্ডারস্কোর.জে ব্যবহার করছেন তবে আপনি _.আইএসপি ফাংশনটি ব্যবহার করতে পারেন :

var obj = {};
var emptyObject = _.isEmpty(obj);

1
কেবল যেখান দিয়ে যাচ্ছেন তার পক্ষে, এটি কোনও জিনিসকে উত্সর্গীকৃত পদ্ধতি নয়। _.isEmpty([]) // true : প্রথম চেক করতে ভুলবেন না stackoverflow.com/a/22482737/1922747
djv

11

আপনি লোডাশ ব্যবহার করতে ইচ্ছুক হলে , আপনি এই someপদ্ধতিটি ব্যবহার করতে পারেন ।

_.some(obj) // returns true or false

এই ছোট jsbin উদাহরণ দেখুন


var x = [1,2] // সত্য
djv

@ Damionjn আমি উদাহরণটিতে আপনার কোড যুক্ত করেছি। আমি অ্যারের সাথে আপনার বক্তব্যটি ভুল উত্তর ফিরিয়ে দেখছি, কিন্তু ওপি প্রথমে একটি বস্তু হিসাবে একটি ভেরিয়েবল ঘোষণা করেছিল তাই আমি এটি ধরে নিতে তার অধিকারটিকে বিশ্বাস করি। উপরে একটি উত্তর রয়েছে যা আন্ডারস্কোরগুলি ইম্পি পদ্ধতি ব্যবহার করে (লোডাশের একই পদ্ধতি রয়েছে)। এই উত্তরটিতে ঠিক একই সমস্যা রয়েছে। আপনি যদি ইম্পটিটি একটি খালি অरे অ্যারে দেন তবে আপনিও ভুল ফল পাবেন।
sfs

যথেষ্ট উপযুক্ত, তবে সর্বোত্তম অনুশীলনের বিষয়ে নিশ্চিত হওয়ার জন্য আমাদের অবশ্যই সমস্ত কভারের উত্তর সরবরাহ করা উচিত। আপনি ঠিক বলেছেন, আমি তার উত্তর দিয়ে কোনও সমালোচনা না করেই পেরিয়েছি। কেবল যেখান দিয়ে যাচ্ছেন তার পক্ষে, এটি কোনও জিনিসকে উত্সর্গীকৃত পদ্ধতি নয়। _.some([1, 2]) // true : প্রথম চেক করতে ভুলবেন না stackoverflow.com/a/13356338/1922747
djv

5
for (var hasProperties in ad) break;
if (hasProperties)
    ... // ad has properties

যদি আপনাকে নিরাপদে থাকতে হয় এবং অবজেক্ট প্রোটোটাইপগুলি পরীক্ষা করতে হয় (এগুলি নির্দিষ্ট লাইব্রেরি দ্বারা যুক্ত করা হয় এবং সেখানে ডিফল্টরূপে নেই):

var hasProperties = false;
for (var x in ad) {
    if (ad.hasOwnProperty(x)) {
        hasProperties = true;
        break;
    }
}
if (hasProperties)
    ... // ad has properties

1
আপনার সমাধানে অযাচিত প্রোটোটাইপ বৈশিষ্ট্যগুলির জন্য কোনও ফিল্টারিং নেই, এর অর্থ এটি প্রোটোটাইপ.জেএস বা লাইস্রাগুলির মতো কোনও লাইব্রেরি ব্যবহার করার সময় বাজে আচরণ করা হতে পারে বা কোনও অভিজ্ঞ ব্যক্তি ব্যবহারকারী অবজেক্টটিতে অতিরিক্ত প্রোটোটাইপ বৈশিষ্ট্য যুক্ত করে। এই পৃষ্ঠায় ড্যানিয়েল সমাধান দেখুন।
জোসচা

কোনও অবজেক্টের প্রোটোটাইপ বাড়ানোর জন্য আপনাকে কোনও লাইব্রেরি ব্যবহার করতে হবে না বা অবিবেচিত হতে হবে না। কিছু অভিজ্ঞ প্রোগ্রামাররা সারাক্ষণ এটি করে।
Alsciende

2
for(var memberName in ad)
{
  //Member Name: memberName
  //Member Value: ad[memberName]
}

সদস্যের অর্থ সদস্যের সম্পত্তি, সদস্য পরিবর্তনশীল, আপনি যেটিকে এটি> _> কল করতে চান

উপরের কোডটি স্ট্রিং সহ সমস্ত কিছুই ফিরিয়ে দেবে ... আপনি যদি কেবলমাত্র অবজেক্টের প্রোটোটাইপটি বাড়ানো হয়েছে কিনা তা দেখতে চান:

var dummyObj = {};  
for(var memberName in ad)
{
  if(typeof(dummyObj[memberName]) == typeof(ad[memberName])) continue; //note A
  //Member Name: memberName
  //Member Value: ad[memberName]

}

নোট এ: আমরা ডামি অবজেক্টের সদস্যের আমাদের টেস্টিং অবজেক্টের সদস্য হিসাবে একই ধরণের আছে কিনা তা পরীক্ষা করে দেখুন। যদি এটি প্রসারিত হয় তবে ডামিওবজেক্টের সদস্য প্রকারটি "অপরিজ্ঞাত" হওয়া উচিত


হাই, আমি কি কেবলমাত্র জানতে পারি যে কোনও বস্তুর বৈশিষ্ট্য রয়েছে কি না? ধন্যবাদ
রিকি

আপনার সমাধানে অযাচিত প্রোটোটাইপ বৈশিষ্ট্যগুলির জন্য কোনও ফিল্টারিং নেই, এর অর্থ এটি প্রোটোটাইপ.জেএস বা লাইস্রাগুলির মতো কোনও লাইব্রেরি ব্যবহার করার সময় বাজে আচরণ করা হতে পারে বা কোনও অভিজ্ঞ ব্যক্তি ব্যবহারকারী অবজেক্টটিতে অতিরিক্ত প্রোটোটাইপ বৈশিষ্ট্য যুক্ত করে।
জোসচা

এই পৃষ্ঠায় ড্যানিয়েলস সমাধানটি দেখুন - এর কম ত্রুটি-প্রবণ!
জোসচা

2
আপনার প্রথম কোড ব্লক এটিকে মোটেই কভার করে না। দ্বিতীয় কোড ব্লকটি খারাপ আচরণ করে যদি আমি "বিজ্ঞাপন" অবজেক্টে কোনও ভেরিয়েবল যুক্ত করি যা অপরিজ্ঞাত। সত্যই, ড্যানিয়েলসের উত্তরটি পরীক্ষা করে দেখুন, এটি একমাত্র সঠিক এবং দ্রুত, কারণ এটি "hasOwnProperty" নামে একটি নেটিভ বাস্তবায়ন ব্যবহার করে।
জোসচা

@Ricky: আপনি একটি বস্তু বৈশিষ্ট্য উপস্থিত রয়েছে কিনা তা যাচাই করতে চান, আপনি কেবল আমার উত্তর উদাহরণ ব্যবহার করতে পারেন stackoverflow.com/questions/2673121/... । কোডটি যদি মন্তব্যে পৌঁছে যায় তবে আপনার অবজেক্টের কোনও সরাসরি সম্পত্তি থাকবে না। যদি না হয়, এটা হবে।
ড্যানিয়েল ভ্যাসালো

2
var hasAnyProps = false; for (var key in obj) { hasAnyProps = true; break; }
// as of this line hasAnyProps will show Boolean whether or not any iterable props exist

সরল, প্রতিটি ব্রাউজারে কাজ করে, এবং যদিও এটি প্রযুক্তিগতভাবে বস্তুর সমস্ত কীগুলির জন্য লুপ হয় তবে এটি সমস্তটি লুপ করে না ... হয় 0 রয়েছে এবং লুপটি চালায় না বা কিছু আছে এবং এটি প্রথমটির পরে ব্রেক হয় একটি (কারণ আমরা পরীক্ষা করে দেখছি যে যদি কিছু আছে ... তবে কেন চালিয়ে যেতে হবে?)


1

খুব দেরিতে উত্তর, তবে আপনি প্রোটোটাইপগুলির সাহায্যে এটি পরিচালনা করতে পারেন।

Array.prototype.Any = function(func) {
    return this.some(func || function(x) { return x });
}

Object.prototype.IsAny = function() {
    return Object.keys(this).Any();
}

0

যখন নিশ্চিত হয়ে নিন যে অবজেক্টটি কোনও ব্যবহারকারী-সংজ্ঞায়িত, ইউডিও খালি রয়েছে তা নির্ধারণের সবচেয়ে সহজ উপায়, নিম্নলিখিত কোডটি হবে:

isEmpty=
/*b.b Troy III p.a.e*/
function(x,p){for(p in x)return!1;return!0};

যদিও এই পদ্ধতিটি (প্রকৃতির দ্বারা) একটি অনুক্ষারক, - এটি দ্রুততম এবং দ্রুততম সম্ভব।

a={};
isEmpty(a) >> true

a.b=1
isEmpty(a) >> false 

PS:! এটি ব্রাউজার-সংজ্ঞায়িত অবজেক্টগুলিতে ব্যবহার করবেন না।


... ফিরে 0; প্রত্যাবর্তন 1}; একই হবে?
15:59 এ কমনপাইক

1
! আগমন সত্য; @pike না, ফিরতি 1; রিটার্ন 0 রিটার্ন মিথ্যা হিসাবে একই
ক্রিস্টোফ

0

দেরীতে উত্তর, তবে কিছু ফ্রেমওয়ার্কগুলি অবজেক্টগুলিকে গণ্য হিসাবে পরিচালনা করে। অতএব, bob.js এটিকে এটি করতে পারে:

var objToTest = {};
var propertyCount = bob.collections.extend(objToTest).count();

0

আপনি নিম্নলিখিত ব্যবহার করতে পারেন:

ডাবল ব্যাং !! সম্পত্তি অনুসন্ধান

var a = !![]; // true
var a = !!null; // false

hasOwnProperty এটি এমনটি যা আমি ব্যবহার করতাম:

var myObject = {
  name: 'John',
  address: null
};
if (myObject.hasOwnProperty('address')) { // true
  // do something if it exists.
}

তবে জাভাস্ক্রিপ্ট পদ্ধতিটির নামটি রক্ষা না করার সিদ্ধান্ত নিয়েছে, তাই এটির সাথে হস্তক্ষেপ করা যেতে পারে।

var myObject = {
  hasOwnProperty: 'I will populate it myself!'
};

মায়োবজেক্টে প্রপ

var myObject = {
  name: 'John',
  address: null,
  developer: false
};
'developer' in myObject; // true, remember it's looking for exists, not value.

ধরণ

if (typeof myObject.name !== 'undefined') {
  // do something
}

তবে এটি নাল পরীক্ষা করে না check

আমি মনে করি এটি সেরা উপায়।

অপারেটরে

var myObject = {
  name: 'John',
  address: null
};

if('name' in myObject) {
  console.log("Name exists in myObject");
}else{
  console.log("Name does not exist in myObject");
}

ফলাফল:

নামটি মাইবজেক্টে বিদ্যমান

এখানে একটি লিঙ্ক রয়েছে যা অপারেটরের আরও বিশদে যায়: কোনও বস্তুর সম্পত্তি উপস্থিত থাকলে তা নির্ধারণ করা হচ্ছে


0

ES6 ফাংশন

/**
 * Returns true if an object is empty.
 * @param  {*} obj the object to test
 * @return {boolean} returns true if object is empty, otherwise returns false
 */
const pureObjectIsEmpty = obj => obj && obj.constructor === Object && Object.keys(obj).length === 0

উদাহরণ:


let obj = "this is an object with String constructor"
console.log(pureObjectIsEmpty(obj)) // empty? true

obj = {}
console.log(pureObjectIsEmpty(obj)) // empty? true

obj = []
console.log(pureObjectIsEmpty(obj)) // empty? true

obj = [{prop:"value"}]
console.log(pureObjectIsEmpty(obj)) // empty? true

obj = {prop:"value"}
console.log(pureObjectIsEmpty(obj)) // empty? false

-1

এ কেমন?

var obj = {},
var isEmpty = !obj;
var hasContent = !!obj

এই উত্তর প্রশ্নের উত্তর দেয় না। ওপিতে জিজ্ঞাসা করা হচ্ছে যে কোনও বস্তুতে ব্যবহারকারী-সংজ্ঞায়িত বৈশিষ্ট্য রয়েছে - আপনার উত্তরটি পরীক্ষা করে নিল যে বস্তুটি নিজেই বুলিয়ান মিথ্যা মানকে রূপান্তর করবে।
জেসোমোনেট

... এবং আমি পরে বুঝতে পারি যে জেমস ইতিমধ্যে তার উত্তরে এই বিকল্পটি অন্তর্ভুক্ত করেছে। দুক্ষিত বন্ধুরা.
পিটার তোথ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.