ใน CoffeeScript วิธีใดที่ง่ายที่สุดในการตรวจสอบว่ามีคีย์อยู่ในวัตถุหรือไม่
ใน CoffeeScript วิธีใดที่ง่ายที่สุดในการตรวจสอบว่ามีคีย์อยู่ในวัตถุหรือไม่
คำตอบ:
key of obj
นี้จะรวบรวม key in obj
JavaScript (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 obj
aditionally.hasOwnProperty()
"เป็นไปได้มากที่สุด" มาจากการที่ฉันไม่ได้พยายาม แต่ไวยากรณ์นี้ทำงานในความเข้าใจ