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


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.