คำถามติดแท็ก object

วัตถุคือเอนทิตีที่สามารถจัดการได้โดยคำสั่งในภาษาการเขียนโปรแกรม วัตถุสามารถเป็นค่าตัวแปรฟังก์ชั่นหรือโครงสร้างข้อมูลที่ซับซ้อน ในการเขียนโปรแกรมเชิงวัตถุวัตถุหมายถึงอินสแตนซ์ของคลาส

13
เพิ่มคุณสมบัติให้กับวัตถุ JavaScript โดยใช้ตัวแปรเป็นชื่อหรือไม่
ฉันดึงรายการออกจาก DOM ด้วย jQuery และต้องการตั้งค่าคุณสมบัติบนวัตถุโดยใช้idองค์ประกอบ DOM ตัวอย่าง const obj = {} jQuery(itemsFromDom).each(function() { const element = jQuery(this) const name = element.attr('id') const value = element.attr('value') // Here is the problem obj.name = value }) หากitemsFromDomรวมองค์ประกอบที่มีid"myId" ฉันต้องการobjมีคุณสมบัติชื่อ "myId" nameดังกล่าวข้างต้นให้ฉัน ฉันจะตั้งชื่อคุณสมบัติของวัตถุโดยใช้ตัวแปรโดยใช้ JavaScript ได้อย่างไร

10
ดำเนินการ. เข้าร่วมกับค่าในอาร์เรย์ของวัตถุ
ถ้าฉันมีอาเรย์ของสตริงฉันสามารถใช้.join()เมธอดรับสตริงเดี่ยวโดยที่แต่ละองค์ประกอบคั่นด้วยเครื่องหมายจุลภาคดังนี้: ["Joe", "Kevin", "Peter"].join(", ") // => "Joe, Kevin, Peter" ฉันมีชุดของวัตถุและฉันต้องการที่จะดำเนินการคล้ายกันกับค่าที่เก็บไว้ในนั้น ดังนั้นจาก [ {name: "Joe", age: 22}, {name: "Kevin", age: 24}, {name: "Peter", age: 21} ] ทำjoinวิธีการเฉพาะกับnameคุณลักษณะเพื่อให้ได้ผลลัพธ์เช่นเดียวกับก่อน ขณะนี้ฉันมีฟังก์ชั่นต่อไปนี้: function joinObj(a, attr){ var out = []; for (var i = 0; i < a.length; i++){ out.push(a[i][attr]); } return out.join(", "); } …

16
อะไรคือความแตกต่างระหว่างคลัปต่อหลวมและคลัปคับในกระบวนทัศน์เชิงวัตถุ
มีใครอธิบายความแตกต่างที่แน่นอนระหว่างคลัปข้อต่อหลวมและคลัปคับในกระบวนทัศน์เชิงวัตถุได้หรือไม่?
272 oop  object  coupling 

12
ลบองค์ประกอบอาร์เรย์ตามคุณสมบัติของวัตถุ
ฉันมีวัตถุหลายอย่างเช่น: var myArray = [ {field: 'id', operator: 'eq', value: id}, {field: 'cStatus', operator: 'eq', value: cStatus}, {field: 'money', operator: 'eq', value: money} ]; ฉันจะลบรายการเฉพาะตามคุณสมบัติได้อย่างไร เช่นฉันจะลบวัตถุอาร์เรย์ที่มี 'เงิน' เป็นคุณสมบัติเขตข้อมูลได้อย่างไร

5
ตัวแปร 'cls' ใช้สำหรับอะไรในคลาส Python
ทำไมclsบางครั้งใช้แทนselfอาร์กิวเมนต์ในคลาส Python ตัวอย่างเช่น: class Person: def __init__(self, firstname, lastname): self.firstname = firstname self.lastname = lastname @classmethod def from_fullname(cls, fullname): cls.firstname, cls.lastname = fullname.split(' ', 1)

19
เรียงลำดับอาร์เรย์ของวัตถุด้วยปุ่มเดียวพร้อมค่าวันที่
ฉันมีอาเรย์ของวัตถุที่มีคู่ค่าคีย์หลายคู่และฉันต้องการเรียงลำดับตาม 'updated_at': [ { "updated_at" : "2012-01-01T06:25:24Z", "foo" : "bar" }, { "updated_at" : "2012-01-09T11:25:13Z", "foo" : "bar" }, { "updated_at" : "2012-01-05T04:13:24Z", "foo" : "bar" } ] วิธีที่มีประสิทธิภาพที่สุดในการทำคืออะไร?

8
จะแสดงวิธีการทั้งหมดของวัตถุได้อย่างไร
ฉันต้องการทราบวิธีการแสดงรายการวิธีการทั้งหมดที่มีอยู่สำหรับวัตถุเช่น: alert(show_all_methods(Math)); สิ่งนี้ควรพิมพ์: abs, acos, asin, atan, atan2, ceil, cos, exp, floor, log, max, min, pow, random,round, sin, sqrt, tan, …

30
คุณจะตรวจสอบว่าวัตถุ JavaScript เป็นวัตถุ DOM ได้อย่างไร
ฉันพยายามที่จะได้รับ: document.createElement('div') //=> true {tagName: 'foobar something'} //=> false ในสคริปต์ของตัวเองฉันเคยใช้สิ่งนี้เพราะฉันไม่ต้องการtagNameทรัพย์สิน: if (!object.tagName) throw ...; ดังนั้นสำหรับวัตถุที่สองฉันจึงคิดวิธีแก้ปัญหาอย่างรวดเร็วซึ่งส่วนใหญ่ใช้งานได้ ;) ปัญหาคือขึ้นอยู่กับเบราว์เซอร์ที่บังคับใช้คุณสมบัติอ่านอย่างเดียวซึ่งไม่ได้ทำทั้งหมด function isDOM(obj) { var tag = obj.tagName; try { obj.tagName = ''; // Read-only for DOM, should throw exception obj.tagName = tag; // Restore for normal objects return false; } catch (e) { …
248 javascript  dom  object 

19
วิธีรับดัชนีวัตถุโดยคุณสมบัติใน JavaScript?
ตัวอย่างเช่นฉันมี: var Data = [ { id_list: 1, name: 'Nick', token: '312312' }, { id_list: 2, name: 'John', token: '123123' }, ] จากนั้นผมต้องการที่จะจัดเรียง / กลับวัตถุนี้โดยnameยกตัวอย่างเช่น แล้วฉันต้องการได้รับสิ่งนี้: var Data = [ { id_list: 2, name: 'John', token: '123123' }, { id_list: 1, name: 'Nick', token: '312312' }, ] และตอนนี้ฉันอยากรู้ดัชนีของวัตถุที่มีคุณสมบัติname='John'เพื่อรับค่าของคุณสมบัติโทเค็น ฉันจะแก้ปัญหาได้อย่างไร


11
การเข้าถึงที่ไม่สอดคล้องกัน: ประเภทพารามิเตอร์เข้าถึงได้น้อยกว่าวิธี
ฉันพยายามที่จะส่งวัตถุ (อ้างอิงถึงผู้ใช้ที่เข้าสู่ระบบในปัจจุบันโดยทั่วไป) ระหว่างสองรูปแบบ ในขณะนี้ฉันมีบางอย่างตามบรรทัดเหล่านี้ในแบบฟอร์มการเข้าสู่ระบบ: private ACTInterface oActInterface; public void button1_Click(object sender, EventArgs e) { oActInterface = new ACTInterface(@"\\actserver\Database\Premier.pad",this.textUser.Text,this.textPass.Text); if (oActInterface.checkLoggedIn()) { //user has authed against ACT, so we can carry on clients oClientForm = new clients(oActInterface); this.Hide(); oClientForm.Show(); } else... ในแบบฟอร์มถัดไป (ลูกค้า) ฉันมี: public partial class clients : Form { …
227 c#  object 

12
เป็นวิธีที่ดีที่สุดในการรวมวัตถุ PHP สองคืออะไร
เรามีวัตถุ PHP5 สองรายการและต้องการที่จะรวมเนื้อหาของหนึ่งเป็นสอง ไม่มีแนวคิดของคลาสย่อยระหว่างกันดังนั้นโซลูชันที่อธิบายในหัวข้อต่อไปนี้ไม่สามารถใช้ได้ คุณจะคัดลอกวัตถุ PHP ลงในประเภทวัตถุอื่นได้อย่างไร //We have this: $objectA->a; $objectA->b; $objectB->c; $objectB->d; //We want the easiest way to get: $objectC->a; $objectC->b; $objectC->c; $objectC->d; หมายเหตุ: นี่คือวัตถุไม่ใช่คลาส วัตถุมีเขตข้อมูลค่อนข้างมากดังนั้นforeachจะค่อนข้างช้า จนถึงตอนนี้เราพิจารณาเปลี่ยนวัตถุ A และ B เป็นอาร์เรย์แล้วรวมเข้าด้วยarray_merge ()ก่อนที่จะเปลี่ยนเป็นวัตถุใหม่ แต่เราไม่สามารถพูดได้ว่าเราภูมิใจในสิ่งนี้
222 php  oop  object 

16
การเพิ่มองค์ประกอบให้กับวัตถุ
ฉันต้องการที่จะเติมไฟล์ json ตอนนี้ฉันมีสิ่งนี้: {"element":{"id":10,"quantity":1}} และฉันต้องการเพิ่ม "องค์ประกอบ" อีกอัน ขั้นตอนแรกของฉันคือการวาง json นั้นในประเภทวัตถุโดยใช้cart = JSON.parseตอนนี้ฉันต้องเพิ่มองค์ประกอบใหม่ ฉันคิดว่าฉันต้องใช้cart.pushเพื่อเพิ่มองค์ประกอบอื่นฉันลองนี้: var element = {}; element.push({ id: id, quantity: quantity }); cart.push(element); แต่ฉันได้รับข้อผิดพลาด "Object ไม่มีวิธีผลัก" เมื่อฉันพยายามทำelement.pushและฉันคิดว่าฉันกำลังทำอะไรผิดไปมากเพราะฉันไม่ได้บอก "องค์ประกอบ" ทุกที่ ฉันจะทำสิ่งนั้นได้อย่างไร แก้ไข:ขอโทษทุกคนฉันมีความสับสนมากในหัวของฉัน ฉันคิดว่าฉันจะได้รับเฉพาะออบเจ็กต์ประเภทเมื่อรับข้อมูลJSON.parseแต่ฉันได้สิ่งที่ฉันใส่ใน JSON ตั้งแต่แรก การวางอาร์เรย์แทนวัตถุแก้ปัญหาของฉันฉันใช้คำแนะนำมากมายมาที่นี่ด้วยขอบคุณทุกคน!
222 javascript  object 

20
ความลึกทั่วไประหว่างวัตถุสองชนิด
ฉันมีสองวัตถุ: และoldObjnewObj ข้อมูลที่oldObjใช้ในการเติมแบบฟอร์มและnewObjเป็นผลมาจากการที่ผู้ใช้เปลี่ยนข้อมูลในแบบฟอร์มนี้และส่งมัน วัตถุทั้งสองอยู่ลึกเช่น พวกเขามีคุณสมบัติที่เป็นวัตถุหรืออาร์เรย์ของวัตถุ ฯลฯ - พวกเขาสามารถอยู่ในระดับ n ลึกดังนั้นอัลกอริทึม diff จะต้องเรียกซ้ำ ตอนนี้ฉันต้องไม่เพียงแค่คิดออกว่ามีการเปลี่ยนแปลงอะไร (เช่นในเพิ่ม / ปรับปรุง / ลบ) จากoldObjถึงnewObjแต่ยังวิธีที่ดีที่สุดแทน จนถึงตอนนี้ความคิดของฉันคือการสร้างgenericDeepDiffBetweenObjectsวิธีการที่จะคืนค่าวัตถุในแบบฟอร์ม{add:{...},upd:{...},del:{...}}แต่ฉันก็คิดว่า: คนอื่นต้องมีสิ่งนี้มาก่อน ดังนั้น ... ไม่มีใครรู้ของห้องสมุดหรือชิ้นส่วนของรหัสที่จะทำเช่นนี้และอาจมีวิธีที่ดีกว่าในการเป็นตัวแทนของความแตกต่าง ปรับปรุง: ฉันคิดว่าวิธีที่ดีกว่าในการแสดงข้อมูลที่อัปเดตโดยใช้โครงสร้างวัตถุเดียวกับnewObjแต่เปลี่ยนค่าคุณสมบัติทั้งหมดเป็นวัตถุในแบบฟอร์ม: {type: '<update|create|delete>', data: <propertyValue>} ดังนั้นถ้าnewObj.prop1 = 'new value'และoldObj.prop1 = 'old value'มันจะตั้งreturnObj.prop1 = {type: 'update', data: 'new value'} อัปเดต 2: มันมีขนดกอย่างแท้จริงเมื่อเราไปถึงคุณสมบัติที่เป็นอาร์เรย์เนื่องจากอาร์เรย์[1,2,3]ควรถูกนับเท่ากับ[2,3,1]ซึ่งง่ายพอสำหรับอาร์เรย์ของชนิดที่มีค่าตามตัวอักษรเช่นสตริง int & bool แต่ยากที่จะจัดการเมื่อมันมาถึง …


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