ใน CoffeeScript วิธีใดที่ง่ายที่สุดในการตรวจสอบว่ามีคีย์อยู่ในวัตถุหรือไม่
ใน CoffeeScript วิธีใดที่ง่ายที่สุดในการตรวจสอบว่ามีคีย์อยู่ในวัตถุหรือไม่
คำตอบ:
key of obj
นี้จะรวบรวม key in objJavaScript (CoffeeScript ใช้ofเมื่ออ้างถึงคีย์และinเมื่ออ้างถึงค่าอาร์เรย์: val in arrจะทดสอบว่าvalอยู่ในarrหรือไม่)
คำตอบของ thejh ถูกต้องหากคุณต้องการละเว้นต้นแบบของวัตถุ คำตอบของ Jimmy ถูกต้องหากคุณต้องการละเว้นคีย์ที่มี a nullหรือundefinedค่า
"?" ผู้ดำเนินการตรวจสอบการมีอยู่:
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
              null.
                    obj.key?น่าจะรัดกุมที่สุด
                    obj.hasOwnProperty(name)
(เพื่อละเว้นคุณสมบัติที่สืบทอด)
key of objจะทำให้เกิดข้อผิดพลาดหากค่าเป็นสตริงหรือตัวเลข Cannot use 'in' operator to search. ในกรณีนี้ถ้าวัตถุไม่ได้กำหนดและไม่เป็นโมฆะมันจะทำงานได้
                    
own key of objaditionally.hasOwnProperty()"เป็นไปได้มากที่สุด" มาจากการที่ฉันไม่ได้พยายาม แต่ไวยากรณ์นี้ทำงานในความเข้าใจ