কোনও জসন অবজেক্টের মধ্যে কী উপস্থিত রয়েছে কিনা তা পরীক্ষা করুন


328
amt: "10.00"
email: "sam@gmail.com"
merchant_id: "sam"
mobileNo: "9874563210"
orderID: "123456"
passkey: "1234"

উপরে আমি ব্যবহার করছি JSON অবজেক্ট। আমি "Merchant_id" কী বিদ্যমান কিনা তা পরীক্ষা করতে চাই। আমি নীচের কোডটি চেষ্টা করেছিলাম, কিন্তু এটি কাজ করছে না। এটি অর্জন করার কোনও উপায়?

<script>
window.onload = function getApp()
{
  var thisSession = JSON.parse('<?php echo json_encode($_POST); ?>');
  //console.log(thisSession);
  if (!("merchant_id" in thisSession)==0)
  {
    // do nothing.
  }
  else 
  {
    alert("yeah");
  }
}
</script>

এর আউটপুট কি <?php echo json_encode($_POST); ?>?
দাইউই


1
এর আউটপুট কি console.log(thisSession);?
দাইওয়ে

1
এছাড়াও !("merchant_id" in thisSession)==0আপনি যেখানে সহজেই ব্যবহার করতে পারেন সেখানে ব্যবহার করে কী সুবিধা হবে "merchant_id" in thisSession?
দাইউই

উত্তর:


585

এটা চেষ্টা কর,

if(thisSession.hasOwnProperty('merchant_id')){

}

জেএস অবজেক্টের thisSessionমতো হওয়া উচিত

{
amt: "10.00",
email: "sam@gmail.com",
merchant_id: "sam",
mobileNo: "9874563210",
orderID: "123456",
passkey: "1234"
}

আপনি এখানে বিশদ খুঁজে পেতে পারেন


6
সংশোধনের জন্য, কি, যদি কোনও হয় তবে তার মধ্যে পার্থক্য রয়েছে if(thisSession.merchant_id !== undefined)এবং if(thisSession.hasOwnProperty('merchant_id'))এটি পর্দার আড়ালে একই জিনিস করছে?
শূন্য 298

2
@ zero298, উভয় ব্যবহার hasOwnProperty নিরাপদ একই হয় না, ... আরও অধিক বিবরণের খুশি লিংক পরীক্ষা stackoverflow.com/questions/10895288/...
আনন্দ ঝা

এসলিন্ট error Do not access Object.prototype method 'hasOwnProperty' from target object এই পদ্ধতিটি ব্যবহার করার সময় ত্রুটি ছুড়ে ফেলে । থটস?
হামচানিজ

2
@ হ্যামসিহিজ যদি জেএসন-এর 'হসনপ্রোপার্টি' ক্ষেত্র থাকে তবে এটি আসল ফানকের ছায়া নেবে। ব্যবহারObject.prototype.hasOwnProperty.call(thisSession, 'merchant_id')
Zmey

79

আপনার অভিপ্রায় অনুসারে এটি করার বিভিন্ন উপায় রয়েছে।

thisSession.hasOwnProperty('merchant_id'); যদি এই সেশনের নিজস্ব কী থাকে (তবে এটি অন্যত্র থেকে উত্তরাধিকার সূত্রে প্রাপ্ত কিছু নয়) আপনাকে জানাবে

"merchant_id" in thisSession এই সেশনটির কী কী আছে তা বিবেচনা না করেই কী এই সেশনটির কী আছে তা আপনাকে জানাব।

thisSession["merchant_id"]কীটি উপস্থিত না থাকলে, বা যদি এর মানটি কোনও কারণে মিথ্যা হিসাবে মূল্যায়ন করে (যেমন এটি আক্ষরিক falseবা পূর্ণসংখ্য 0 এবং আরও কিছু থাকে) মিথ্যা ফিরিয়ে দেবে ।


2
এই সেশন ["মার্চেন্ট_আইডি"] অসত্য সংশোধিত মিথ্যা নয় return
পি_চ্যাম্প

ঠিক আছে, "মিথ্যা" তখন।
পল

24

(আমি পার্টিতে দেরি করেও আমি এটি নির্দেশ করতে চেয়েছিলাম) আপনি
যে মূল প্রশ্নটি মূলত একটি 'নট ইন' সন্ধানের চেষ্টা করছেন। দেখে মনে হচ্ছে যে আমি যে গবেষণাটি করছিলাম তা (নীচে 2 টি লিঙ্ক) সমর্থিত নয়।

সুতরাং আপনি যদি একটি 'নট ইন' করতে চান:

("merchant_id" in x)
true
("merchant_id_NotInObject" in x)
false 

আমি কেবল সেই অভিব্যক্তিটি == আপনি যা খুঁজছেন সেট করার প্রস্তাব দিই

if (("merchant_id" in thisSession)==false)
{
    // do nothing.
}
else 
{
    alert("yeah");
}

https://developer.mozilla.org/en-US/docs/Web/JavaScript/ উল্লেখ / অপারেটর / ইন http://www.w3schools.com/jsref/jsref_operators.asp


17

প্রকারের চেকটিও কাজ করে:

if(typeof Obj.property == "undefined"){
    // Assign value to the property here
    Obj.property = someValue;
}

8

আমি আপনার যদি বিবৃতিটি সামান্য পরিবর্তন করি এবং কাজ করে (উত্তরাধিকারসূত্রে প্রাপ্ত আপত্তিগুলির জন্যও - স্নিপেটটি দেখুন)

if(!("merchant_id" in thisSession)) alert("yeah");


7

আপনি এই মত করতে পারেন:

if("merchant_id" in thisSession){ /** will return true if exist */
 console.log('Exist!');
}

অথবা

if(thisSession["merchant_id"]){ /** will return its value if exist */
 console.log('Exist!');
}

0

অপরিজ্ঞাত এবং নাল বস্তুগুলি পরীক্ষা করতে ফাংশন

function elementCheck(objarray, callback) {
        var list_undefined = "";
        async.forEachOf(objarray, function (item, key, next_key) {
            console.log("item----->", item);
            console.log("key----->", key);
            if (item == undefined || item == '') {
                list_undefined = list_undefined + "" + key + "!!  ";
                next_key(null);
            } else {
                next_key(null);
            }
        }, function (next_key) {
            callback(list_undefined);
        })
    }

প্রেরিত অবজেক্টে অপরিজ্ঞাত বা নাল রয়েছে কিনা তা যাচাই করার জন্য এখানে একটি সহজ উপায়

var objarray={
"passenger_id":"59b64a2ad328b62e41f9050d",
"started_ride":"1",
"bus_id":"59b8f920e6f7b87b855393ca",
"route_id":"59b1333c36a6c342e132f5d5",
"start_location":"",
"stop_location":""
}
elementCheck(objarray,function(list){
console.log("list");
)

-13

আপনি চেষ্টা করতে পারেন if(typeof object !== 'undefined')

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