คำถามติดแท็ก javascript-objects

ใช้แท็กนี้สำหรับคำถามที่เกี่ยวข้องกับวัตถุ JavaScript

30
ฉันจะลบคุณสมบัติออกจากวัตถุ JavaScript ได้อย่างไร
ว่าฉันสร้างวัตถุดังนี้ let myObject = { "ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*" }; เป็นวิธีที่ดีที่สุดในการลบคุณสมบัติregexเพื่อจบด้วยใหม่myObjectดังนี้ let myObject = { "ircEvent": "PRIVMSG", "method": "newURI" };

30
ฉันจะตรวจสอบว่าอาร์เรย์มีค่าใน JavaScript ได้อย่างไร
วิธีที่รัดกุมและมีประสิทธิภาพมากที่สุดในการค้นหาว่าอาร์เรย์ JavaScript มีค่าคืออะไร? นี่เป็นวิธีเดียวที่ฉันรู้: function contains(a, obj) { for (var i = 0; i < a.length; i++) { if (a[i] === obj) { return true; } } return false; } มีวิธีที่ดีกว่าและรัดกุมกว่านี้หรือไม่ คำถามนี้เกี่ยวข้องกับคำถาม Stack Overflow มากที่สุดวิธีที่ดีที่สุดในการค้นหารายการในอาร์เรย์ JavaScript หรือไม่ indexOfซึ่งอยู่ในการหาวัตถุในอาร์เรย์ใช้


30
ฉันจะโคลนวัตถุ JavaScript ได้อย่างถูกต้องได้อย่างไร
xฉันมีวัตถุ ฉันต้องการที่จะคัดลอกเป็นวัตถุyเช่นว่าการเปลี่ยนแปลงที่จะไม่แก้ไขy xฉันรู้ว่าการคัดลอกวัตถุที่มาจากวัตถุ JavaScript ในตัวจะส่งผลให้มีคุณสมบัติพิเศษที่ไม่ต้องการ นี่ไม่ใช่ปัญหาเนื่องจากฉันคัดลอกหนึ่งในวัตถุที่สร้างขึ้นตามตัวอักษรของฉันเอง ฉันจะโคลนวัตถุ JavaScript ได้อย่างถูกต้องได้อย่างไร

30
วิธีการตรวจสอบว่าวัตถุเป็นอาร์เรย์?
ฉันพยายามเขียนฟังก์ชั่นที่ยอมรับรายการสตริงหรือสตริงเดียว ถ้าเป็นสตริงฉันก็อยากแปลงมันเป็นอาเรย์ที่มีเพียงหนึ่งไอเท็มดังนั้นฉันสามารถวนซ้ำมันได้โดยไม่ต้องกลัวว่าจะเกิดข้อผิดพลาด ดังนั้นฉันจะตรวจสอบว่าตัวแปรเป็นอาร์เรย์ได้อย่างไร ผมเคยปัดเศษขึ้นการแก้ปัญหาต่าง ๆ ดังต่อไปนี้และสร้างการทดสอบ jsperf พวกเขากำลังได้อย่างรวดเร็วทั้งหมดดังนั้นเพียงแค่ใช้Array.isArray- เป็นอย่างดีได้รับการสนับสนุนในขณะนี้และการทำงานข้ามเฟรม

30
ฉันจะรวมคุณสมบัติของวัตถุ JavaScript สองรายการแบบไดนามิกได้อย่างไร
ฉันต้องสามารถรวมสองวัตถุ JavaScript (ง่ายมาก) ที่รันไทม์ ตัวอย่างเช่นฉันต้องการ: var obj1 = { food: 'pizza', car: 'ford' } var obj2 = { animal: 'dog' } obj1.merge(obj2); //obj1 now has three properties: food, car, and animal ใครบ้างมีสคริปต์สำหรับสิ่งนี้หรือรู้วิธีการทำเช่นนี้? ฉันไม่ต้องการการเรียกซ้ำและไม่จำเป็นต้องรวมฟังก์ชั่นเพียงแค่วิธีการกับวัตถุแบน

30
ความยาวของวัตถุ JavaScript
ฉันมีวัตถุ JavaScript มีวิธีปฏิบัติที่ดีที่สุดในตัวหรือเป็นที่ยอมรับเพื่อให้ได้ความยาวของวัตถุนี้หรือไม่ const myObject = new Object(); myObject["firstname"] = "Gareth"; myObject["lastname"] = "Simpson"; myObject["age"] = 21;

30
ฉันจะแสดงวัตถุ JavaScript ได้อย่างไร
ฉันจะแสดงเนื้อหาของวัตถุ JavaScript ในรูปแบบสตริงเช่นเดียวกับเมื่อเราalertเป็นตัวแปรได้อย่างไร รูปแบบเดียวกับที่ฉันต้องการแสดงวัตถุ

30
ค้นหาวัตถุโดย id ในอาร์เรย์ของวัตถุ JavaScript
ฉันมีชุด: myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}, etc.] ฉันไม่สามารถเปลี่ยนโครงสร้างของอาร์เรย์ได้ ฉันถูกส่งผ่าน ID ของ45และฉันต้องการที่จะได้รับ'bar'สำหรับวัตถุนั้นในอาร์เรย์ ฉันจะทำสิ่งนี้ใน JavaScript หรือใช้ jQuery ได้อย่างไร


15
จากอาร์เรย์ของวัตถุแยกค่าของคุณสมบัติเป็นอาร์เรย์
ฉันมีอาร์เรย์วัตถุ JavaScript ที่มีโครงสร้างต่อไปนี้: objArray = [ { foo: 1, bar: 2}, { foo: 3, bar: 4}, { foo: 5, bar: 6} ]; ฉันต้องการที่จะดึงข้อมูลจากแต่ละวัตถุและได้รับอาร์เรย์มีค่าสำหรับข้อมูลตัวอย่างเช่นจะให้อาร์เรย์foo[ 1, 3, 5 ] ฉันสามารถทำได้ด้วยวิธีการที่ไม่สำคัญนี้: function getFields(input, field) { var output = []; for (var i=0; i < input.length ; ++i) output.push(input[i][field]); return output; } var result …

29
__proto__ VS. ต้นแบบใน JavaScript
รูปนี้แสดงให้เห็นอีกครั้งว่าทุกวัตถุมีต้นแบบ ฟังก์ชั่นตัวสร้างฟูยังมีของตัวเอง__proto__ซึ่งเป็น Function.prototype และในทางกลับกันยังอ้างอิงผ่าน__proto__คุณสมบัติของมันอีกครั้งเพื่อ Object.prototype ดังนั้นซ้ำ Foo.prototype เป็นเพียงคุณสมบัติที่ชัดเจนของ Foo ซึ่งหมายถึงต้นแบบของวัตถุ b และ c var b = new Foo(20); var c = new Foo(30); อะไรคือความแตกต่างระหว่าง__proto__และprototype? รูปที่ถูกนำมาจากdmitrysoshnikov.com

23
วิธีรับค่าคุณสมบัติทั้งหมดของวัตถุ JavaScript (โดยไม่รู้ตัวกุญแจ)
หากมีวัตถุ Javascript: var objects={...}; สมมติว่ามันมีคุณสมบัติมากกว่า 50 รายการโดยไม่ทราบชื่อคุณสมบัติ (นั่นคือโดยไม่รู้ตัว 'คีย์') วิธีรับค่าคุณสมบัติแต่ละค่าในลูป

15
จะวนซ้ำวัตถุ JavaScript ได้อย่างไร
ฉันมีวัตถุใน JavaScript: { abc: '...', bca: '...', zzz: '...', xxx: '...', ccc: '...', // ... } ฉันต้องการใช้การforวนซ้ำเพื่อรับคุณสมบัติ และฉันต้องการวนซ้ำในส่วน (ไม่ใช่คุณสมบัติของวัตถุทั้งหมดในครั้งเดียว) ด้วยอาร์เรย์ที่เรียบง่ายฉันสามารถทำได้ด้วยforลูปมาตรฐาน: for (i = 0; i < 100; i++) { ... } // first part for (i = 100; i < 300; i++) { ... } // second for (i = …

9
สร้างวัตถุว่างเปล่าใน JavaScript ด้วย {} หรือวัตถุใหม่ ()?
มีสองวิธีในการสร้างวัตถุว่างใน JavaScript: var objectA = {} var objectB = new Object() มีความแตกต่างในวิธีการที่โปรแกรมสคริปต์จัดการกับพวกเขา? มีเหตุผลที่จะใช้อย่างใดอย่างหนึ่งมากกว่าที่อื่น ๆ ? ในทำนองเดียวกันก็เป็นไปได้ที่จะสร้างอาร์เรย์ว่างโดยใช้ไวยากรณ์ที่แตกต่างกัน: var arrayA = [] var arrayB = new Array()

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.