কফিস্ক্রিপ্ট ব্যবহার করে কীতে কোনও কী উপস্থিত রয়েছে কিনা তা যাচাই করার সহজ উপায়


110

কফিস্ক্রিপ্টে, কোনও জিনিসে কী উপস্থিত রয়েছে কিনা তা যাচাই করার সহজ উপায় কী?

উত্তর:


182
key of obj

এটি জাভাস্ক্রিপ্ট এর সংকলন key in obj। (CoffeeScript ব্যবহার ofযখন চাবি উল্লেখ, এবং inযখন অ্যারের মান উল্লেখ: val in arrকিনা পরীক্ষা হবে valহয় arr।)

আপনি যদি বস্তুর প্রোটোটাইপ উপেক্ষা করতে চান তবে তাদের উত্তরটি সঠিক। আপনি কোনও nullবা undefinedমান দিয়ে কীগুলি উপেক্ষা করতে চাইলে জিমির উত্তরটি সঠিক ।


2
own key of objখুব সম্ভবত অ্যাডিশনালি টেস্ট করতেও কাজ করে .hasOwnProperty()। "সম্ভবত" আমার কাছ থেকে চেষ্টা করা হয়নি, তবে এই বাক্য গঠনটি বোধগম্যতায় কাজ করছে।
উড়ন্ত ভেড়া

2
@ ফ্লাইংশিপ না, এটি কেবল উপলব্ধিতে কাজ করে। এটি ব্যবহার করে দেখুন: coffeescript.org/#ry:own%20key%20of%20obj
ট্রেভর বার্নহ্যাম

আহ, ঠিক আছে :own = (prop, obj) -> Object::hasOwnProperty.call obj, prop
উড়ন্ত ভেড়া

36

দ্য '?' অস্তিত্বের জন্য অপারেটর চেক:

if obj?
    # object is not undefined or null

if obj.key?
    # obj.key is not undefined or null

# call function if it exists
obj.funcKey?()

# chain existence checks, returns undefined if failure at any level
grandChildVal = obj.key?.childKey?.grandChildKey

# chain existence checks with function, returns undefined if failure at any level
grandChildVal = obj.key?.childKey?().grandChildKey

16
কীটি থাকলে তবে এর মান থাকে তবে এটি ব্যর্থ হয় null
মিউ খুব

এক্ষেত্রে যেখানে কেউ কীটি বিদ্যমান থাকা সম্পর্কে বিবেচনা করেন না তবে নাল হয়ে থাকেন তবে obj.key?সম্ভবত এটি সবচেয়ে সংক্ষিপ্ত।
অ্যান্ড্রু মাও

21
obj.hasOwnProperty(name)

(উত্তরাধিকারসূত্রে প্রাপ্ত সম্পত্তিগুলিকে উপেক্ষা করতে)


আমি এই প্রতিক্রিয়াটি পছন্দ করি কারণ key of objমানটি যদি স্ট্রিং বা সংখ্যা হয় তবে ত্রুটি ছুঁড়ে দেবে। Cannot use 'in' operator to search। এই ক্ষেত্রে যদি অবজেক্টটি অপরিজ্ঞাত না হয় এবং শূন্য না হয় তবে এটি কাজ করবে।
jqualls

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