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

อาร์เรย์คือโครงสร้างข้อมูลเชิงเส้นที่เรียงลำดับซึ่งประกอบด้วยชุดขององค์ประกอบ (ค่าตัวแปรหรือการอ้างอิง) โดยแต่ละรายการจะถูกระบุด้วยดัชนีหนึ่งรายการหรือมากกว่า เมื่อถามเกี่ยวกับตัวแปรเฉพาะของอาร์เรย์ให้ใช้แท็กที่เกี่ยวข้องเหล่านี้แทน: [vector], [arraylist], [matrix] เมื่อใช้แท็กนี้ในคำถามที่เฉพาะเจาะจงกับภาษาการเขียนโปรแกรมให้แท็กคำถามด้วยภาษาการเขียนโปรแกรมที่ใช้

10
การลบรายการอาร์เรย์ตามค่า
ฉันต้องการลบรายการอาร์เรย์ด้วยค่าที่กำหนด: if (in_array($id, $items)) { $items = array_flip($items); unset($items[ $id ]); $items = array_flip($items); } มันสามารถทำได้ในทางที่สั้นกว่า (มีประสิทธิภาพมากขึ้น)?
166 php  arrays 

8
ฉันจะลบองค์ประกอบออกจากรายการโดยใช้ lodash ได้อย่างไร
ฉันมีวัตถุที่มีลักษณะเช่นนี้: var obj = { "objectiveDetailId": 285, "objectiveId": 29, "number": 1, "text": "x", "subTopics": [{ "subTopicId": 1, "number": 1 }, { "subTopicId": 2, "number": 32 }, { "subTopicId": 3, "number": 22 }] } var stToDelete = 2; ฉันได้lodashติดตั้งในแอปพลิเคชันของฉันสำหรับสิ่งอื่น ๆ มีวิธีที่มีประสิทธิภาพเพื่อใช้lodashในการลบรายการ: {"subTopicId":2, "number":32}จากobjวัตถุหรือไม่ หรือมีวิธีจาวาสคริปต์ในการทำเช่นนี้?

10
ฉันจะป้องกันการปรับเปลี่ยนเขตข้อมูลส่วนตัวในชั้นเรียนได้อย่างไร
ลองนึกภาพว่าฉันมีคลาสนี้: public class Test { private String[] arr = new String[]{"1","2"}; public String[] getArr() { return arr; } } ตอนนี้ฉันมีคลาสอื่นที่ใช้คลาสด้านบน: Test test = new Test(); test.getArr()[0] ="some value!"; //!!! ดังนั้นนี่คือปัญหา: ฉันได้เข้าถึงสนามส่วนตัวของชั้นเรียนจากภายนอก! ฉันจะป้องกันสิ่งนี้ได้อย่างไร ฉันหมายความว่าฉันจะทำให้อาร์เรย์นี้ไม่เปลี่ยนรูปแบบได้อย่างไร นี่หมายความว่าทุกวิธีทะเยอทะยานคุณสามารถหาทางเข้าถึงฟิลด์ส่วนตัวได้หรือไม่? (ฉันไม่ต้องการห้องสมุดใด ๆ เช่น Guava ฉันแค่ต้องรู้วิธีที่ถูกต้องในการทำเช่นนี้)
165 java  arrays  oop  class 


9
ทำไม 2 == [2] ใน JavaScript
ฉันเพิ่งค้นพบว่า2 == [2]ใน JavaScript เมื่อมันปรากฏออกมาการเล่นโวหารนี้มีผลที่น่าสนใจสองประการ var a = [0, 1, 2, 3]; a[[2]] === a[2]; // this is true ในทำนองเดียวกันงานต่อไปนี้: var a = { "abc" : 1 }; a[["abc"]] === a["abc"]; // this is also true แม้กระทั่งคนแปลกหน้าก็ใช้งานได้เช่นกัน: [[[[[[[2]]]]]]] == 2; // this is true too! WTF? พฤติกรรมเหล่านี้ดูเหมือนจะสอดคล้องกันในทุกเบราว์เซอร์ ความคิดใดว่าทำไมนี่คือคุณสมบัติภาษา? นี่คือผลที่ตามมาอย่างบ้าคลั่งของ "ฟีเจอร์" …

4
ประกาศอาร์เรย์คงที่
ฉันเหนื่อย: const ascii = "abcdefghijklmnopqrstuvwxyz" const letter_goodness []float32 = { .0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0633,.0906,.0276, .0098,.0236,.0015,.0197,.0007 } const letter_goodness = { .0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0633,.0906,.0276, .0098,.0236,.0015,.0197,.0007 } const letter_goodness = []float32 { .0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0633,.0906,.0276, .0098,.0236,.0015,.0197,.0007 } ขั้นแรกการประกาศและการเริ่มต้นทำงานได้ดี แต่ตัวที่สองสามและสี่ไม่ทำงาน ฉันจะประกาศและเริ่มต้นอาร์เรย์อาร์เรย์ของ const ได้อย่างไร
164 arrays  go  const 

12
การตรวจสอบว่าอาร์เรย์สตริงมีค่าหรือไม่หากได้รับตำแหน่ง
ฉันมีอาร์เรย์สตริงนี้: string[] stringArray = { "text1", "text2", "text3", "text4" }; string value = "text3"; ฉันต้องการที่จะตรวจสอบว่ามีstringArray valueถ้าเป็นเช่นนั้นฉันต้องการค้นหาตำแหน่งในอาร์เรย์ ฉันไม่ต้องการใช้ลูป ใครช่วยแนะนำฉันว่าฉันจะทำอย่างไร
163 c#  arrays  string 

19
รับจำนวนที่ใกล้เคียงที่สุดของอาร์เรย์
ฉันมีตัวเลขตั้งแต่ลบ 1,000 ถึงบวก 1,000 และฉันมีอาร์เรย์ที่มีตัวเลขอยู่ในนั้น แบบนี้: [2, 42, 82, 122, 162, 202, 242, 282, 322, 362] ฉันต้องการให้หมายเลขที่ฉันมีการเปลี่ยนแปลงเป็นจำนวนที่ใกล้ที่สุดของอาร์เรย์ ยกตัวอย่างเช่นที่ฉันได้รับเป็นจำนวนฉันต้องการที่จะได้รับ8082
163 javascript  arrays 

19
จะตรวจสอบว่าสตริงมีข้อความจากอาร์เรย์ของสตริงย่อยใน JavaScript ได้อย่างไร?
ตรงไปตรงมาสวย ในจาวาสคริปต์ฉันต้องตรวจสอบว่าสตริงมีสตริงย่อยใด ๆ ที่อยู่ในอาร์เรย์หรือไม่

12
วิธีแปลงสตริงไบต์เป็น int?
ฉันจะแปลงสตริงไบต์เป็น int ในไพ ธ อนได้อย่างไร พูดอย่างนี้: 'y\xcc\xa6\xbb' ฉันคิดวิธีที่ฉลาด / โง่ขึ้นมา: sum(ord(c) << (i * 8) for i, c in enumerate('y\xcc\xa6\xbb'[::-1])) ฉันรู้ว่าต้องมีบางสิ่งในตัวหรือในห้องสมุดมาตรฐานที่ทำสิ่งนี้ได้ง่ายกว่า ... ซึ่งแตกต่างจากการแปลงสตริงของตัวเลขฐานสิบหกซึ่งคุณสามารถใช้ int (xxx, 16) ได้ แต่ฉันต้องการแปลงสตริงของค่าไบต์จริงแทน UPDATE: ฉันชอบคำตอบของ James ที่ดีขึ้นเล็กน้อยเพราะไม่ต้องการนำเข้าโมดูลอื่น แต่วิธีของ Greg เร็วขึ้น: >>> from timeit import Timer >>> Timer('struct.unpack("<L", "y\xcc\xa6\xbb")[0]', 'import struct').timeit() 0.36242198944091797 >>> Timer("int('y\xcc\xa6\xbb'.encode('hex'), 16)").timeit() 1.1432669162750244 …
162 python  arrays  string 

7
แปลงอาร์กิวเมนต์บรรทัดคำสั่งเป็นอาร์เรย์ใน Bash
ฉันจะแปลงอาร์กิวเมนต์บรรทัดคำสั่งเป็นอาร์เรย์สคริปต์ทุบตีได้อย่างไร ฉันต้องการสิ่งนี้: ./something.sh arg1 arg2 arg3 และแปลงเป็น myArray=( arg1 arg2 arg3 ) เพื่อให้ฉันสามารถใช้ myArray เพื่อใช้ในสคริปต์ต่อไป โพสต์ SO ก่อนหน้านี้ใกล้เข้ามา แต่ไม่ได้เข้าไปในวิธีการสร้างอาร์เรย์: ฉันจะแยกอาร์กิวเมนต์บรรทัดคำสั่งใน Bash ได้อย่างไร ฉันต้องการแปลงอาร์กิวเมนต์เป็นอาร์เรย์สคริปต์ทุบตีปกติ ฉันรู้ว่าฉันสามารถใช้ภาษาอื่น (Python เป็นต้น) แต่ต้องทำอย่างนี้ในการทุบตี ฉันเดาว่าฉันกำลังมองหาฟังก์ชั่น "ผนวก" หรืออะไรที่คล้ายกัน? อัปเดต: ฉันต้องการถามวิธีตรวจสอบข้อโต้แย้งที่เป็นศูนย์และกำหนดค่าอาร์เรย์เริ่มต้นและด้วยคำตอบด้านล่างทำให้สามารถใช้งานได้: if [ "$#" -eq 0 ]; then myArray=( defaultarg1 defaultarg2 ) else myArray=( "$@" ) fi
162 arrays  bash  shell 

9
มีวิธีวัดว่าเรียงรายการอย่างไร
มีวิธีวัดว่าเรียงรายการอย่างไร ฉันหมายถึงมันไม่เกี่ยวกับการรู้ว่ารายการเรียงลำดับหรือไม่ (บูลีน) แต่สิ่งที่เหมือนอัตราส่วนของ "การจัดเรียง" สิ่งที่ต้องการค่าสัมประสิทธิ์สหสัมพันธ์ในสถิติ ตัวอย่างเช่น, หากรายการของรายการอยู่ในลำดับจากนั้นอัตราจะเป็น 1.0 หากรายการถูกเรียงจากมากไปน้อยอัตราของมันจะเป็น -1.0 หากรายการเกือบเรียงจากน้อยไปมากอัตราของมันจะเป็น 0.9 หรือค่าใกล้เคียงกับ 1 หากไม่มีการเรียงลำดับรายการทั้งหมด (สุ่ม) อัตราจะใกล้เคียงกับ 0 ฉันกำลังเขียนห้องสมุดเล็ก ๆ ใน Scala เพื่อฝึกฝน ฉันคิดว่าอัตราการเรียงลำดับจะมีประโยชน์ แต่ฉันไม่พบข้อมูลเกี่ยวกับสิ่งนั้น บางทีฉันอาจไม่รู้เงื่อนไขที่เพียงพอสำหรับแนวคิด

9
Numpy - เพิ่มแถวในอาร์เรย์
หนึ่งจะเพิ่มแถวในอาร์เรย์ numpy ได้อย่างไร ฉันมีอาร์เรย์ A: A = array([[0, 1, 2], [0, 2, 0]]) ฉันต้องการเพิ่มแถวไปยังอาร์เรย์นี้จากอาร์เรย์ X อื่นหากองค์ประกอบแรกของแต่ละแถวใน X ตรงตามเงื่อนไขที่ระบุ อาร์เรย์ Numpy ไม่มีเมธอด 'ผนวก' เหมือนกับของรายการหรืออย่างนั้น ถ้า A และ X เป็นรายการฉันจะทำ: for i in X: if i[0] < 3: A.append(i) มีวิธีnumpythonicที่จะทำเทียบเท่า? ขอบคุณ S ;-)
161 python  arrays  numpy  rows 

4
JavaScript Array ที่จะตั้งค่า
MSDN อ้างถึงสิ่งที่เป็นนามธรรมของSet collection ของ JavaScript ฉันมีอาร์เรย์ของวัตถุที่ฉันต้องการแปลงเป็นชุดเพื่อให้ฉันสามารถลบ ( .delete()) องค์ประกอบต่างๆตามชื่อ: var array = [ {name: "malcom", dogType: "four-legged"}, {name: "peabody", dogType: "three-legged"}, {name: "pablo", dogType: "two-legged"} ]; ฉันจะแปลงอาร์เรย์นี้เป็นชุดได้อย่างไร โดยเฉพาะอย่างยิ่งเป็นไปได้ไหมที่จะทำสิ่งนี้โดยไม่ต้องวนซ้ำเหนืออาร์เรย์ด้านบน เอกสารประกอบค่อนข้างขาด (เพียงพอสำหรับชุดสร้างอินสแตนซ์ไม่ใช่สำหรับการแปลง - ถ้าเป็นไปได้) ฉันอาจกำลังคิดถึงการแปลงเป็นแผนที่เพื่อลบทีละคีย์ สิ่งที่ฉันพยายามทำให้สำเร็จคือคอลเล็กชันที่ทำซ้ำได้ซึ่งสามารถเข้าถึงหรือแก้ไขได้โดยการเข้าถึงองค์ประกอบโดยใช้คีย์เป็นหลัก การแปลงจากอาร์เรย์เป็นอีกเป้าหมายหนึ่งเป็นเป้าหมายสูงสุด
161 javascript  arrays  set 

8
เหตุใดอาร์เรย์ของโควาเรียนท์ แต่ยาสามัญมีค่าคงที่?
จาก Java ที่มีประสิทธิภาพโดย Joshua Bloch อาร์เรย์แตกต่างจากประเภททั่วไปในสองวิธีที่สำคัญ อาร์เรย์แรกเป็น covariant ยาสามัญมีค่าคงที่ Covariant นั้นหมายถึงว่าถ้า X เป็นชนิดย่อยของ Y ดังนั้น X [] ก็จะเป็นประเภทย่อยของ Y [] อาร์เรย์เป็น covariant เนื่องจากสตริงเป็นชนิดย่อยของ Object So String[] is subtype of Object[] ค่าคงที่นั้นหมายถึงโดยไม่คำนึงว่า X เป็นชนิดย่อยของ Y หรือไม่ List<X> will not be subType of List<Y>. คำถามของฉันคือทำไมการตัดสินใจที่จะทำให้อาร์เรย์ covariant ใน Java? มีการโพสต์ SO อื่น ๆ …

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