ครั้งแรกที่ฉันทำงานด้วยjQuery.inArray()
และมันก็ทำหน้าที่แปลก ๆ
หากวัตถุอยู่ในอาร์เรย์วัตถุจะคืนค่า 0 แต่ 0 จะเป็นเท็จใน Javascript ดังนั้นผลลัพธ์ต่อไปนี้: "ไม่ได้อยู่ในอาร์เรย์"
var myarray = [];
myarray.push("test");
if(jQuery.inArray("test", myarray)) {
console.log("is in array");
} else {
console.log("is NOT in array");
}
ฉันจะต้องเปลี่ยนคำสั่ง if เป็น:
if(jQuery.inArray("test", myarray)==0)
แต่นี่ทำให้โค้ดไม่สามารถอ่านได้ โดยเฉพาะอย่างยิ่งสำหรับคนที่ไม่รู้จักฟังก์ชั่นนี้ พวกเขาจะคาดหวังว่า jQuery.inArray ("test", myarray) จะให้ค่าจริงเมื่อ "test" อยู่ในอาร์เรย์
ดังนั้นคำถามของฉันคือทำไมมันทำแบบนี้? ฉันไม่ชอบสิ่งนี้จริงๆ แต่ต้องมีเหตุผลที่ดีที่จะทำเช่นนั้น
if jQuery.inArray('test', myarray) isn't -1