ฉันจะผนวกวัตถุ (เช่นสตริงหรือตัวเลข) ลงในอาร์เรย์ใน JavaScript ได้อย่างไร
ฉันจะผนวกวัตถุ (เช่นสตริงหรือตัวเลข) ลงในอาร์เรย์ใน JavaScript ได้อย่างไร
คำตอบ:
ใช้Array.prototype.push
วิธีการต่อท้ายค่าในอาร์เรย์:
// initialize array
var arr = [
"Hi",
"Hello",
"Bonjour"
];
// append new value to the array
arr.push("Hola");
console.log(arr);
คุณสามารถใช้push()
ฟังก์ชันเพื่อผนวกค่ามากกว่าหนึ่งค่าเข้ากับอาร์เรย์ในการโทรครั้งเดียว:
// initialize array
var arr = ["Hi", "Hello", "Bonjour", "Hola"];
// append multiple values to the array
arr.push("Salut", "Hey");
// display all values
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
ปรับปรุง
หากคุณต้องการเพิ่มรายการของอาร์เรย์หนึ่งไปยังอาร์เรย์อื่นคุณสามารถใช้firstArray.concat(secondArray)
:
var arr = [
"apple",
"banana",
"cherry"
];
arr = arr.concat([
"dragonfruit",
"elderberry",
"fig"
]);
console.log(arr);
ปรับปรุง
นอกเหนือจากคำตอบนี้หากคุณต้องการผนวกค่าใด ๆ กับจุดเริ่มต้นของอาร์เรย์ที่หมายถึงดัชนีแรกจากนั้นคุณสามารถใช้Array.prototype.unshift
เพื่อจุดประสงค์นี้
var arr = [1, 2, 3];
arr.unshift(0);
console.log(arr);
นอกจากนี้ยังรองรับการผนวกค่าหลายค่าพร้อมกันได้เช่นpush
กัน
for
เลย (ใช้.forEach
)
length
ทรัพย์สิน ล่ามทำงานได้อย่างยอดเยี่ยมในตัวมันเองและมันจะไม่สร้างความแตกต่างใด ๆ ในโลกแห่งความจริงไม่ว่าคุณจะปรับมันให้เหมาะสมหรือไม่ก็ตาม ถ้าอาเรย์ของคุณมีขนาดใหญ่มากซึ่งการปรับให้เหมาะสม.length
จะช่วยได้จริงอาเรย์ส่วนใหญ่อาจไม่ใช่โครงสร้างข้อมูลที่เหมาะสมอีกต่อไป การใช้forEach
มันมีข้อดี แต่ก็เป็นที่น่าสงสัยอย่างมากว่าประสิทธิภาพที่เพิ่มขึ้นจะเป็นหนึ่งในนั้นเพราะฟังก์ชั่นการเรียกใช้สำหรับการทำซ้ำแต่ละครั้งต้องเสียค่าใช้จ่ายและไม่ต้องเสียอะไรเลย
length
คุณสมบัติของอาร์เรย์ไม่ถูกคำนวณทุกครั้งที่คุณเรียกมันเป็นตัวแปรที่เก็บไว้ในarray
วัตถุซึ่งจะได้รับการปรับปรุงเฉพาะเมื่อคุณเปลี่ยนอาร์เรย์ ดังนั้นในความเป็นจริงจึงไม่มีค่าใช้จ่ายในการปฏิบัติรวมถึงarr.length
ในfor
เงื่อนไข
forEach
ฟังก์ชั่นการโทรกลับ (บางคนก็ทำไปแล้ว) และจะไม่มีความแตกต่างในรหัสเครื่องที่สร้างขึ้นหากฟังก์ชั่นถูกเรียกบ่อย ๆ รันไทม์ คำแนะนำแบบเดียวกันนี้สำหรับภาษาใด ๆ ที่ไม่ใช่แอสเซมเบลอร์
หากคุณต่อท้ายตัวแปรเดียวเท่านั้นก็ใช้push()
งานได้ดี หากคุณต้องการผนวกอาร์เรย์อื่นให้ใช้concat()
:
var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];
var ar3 = ar1.concat(ar2);
alert(ar1);
alert(ar2);
alert(ar3);
Concat จะไม่ส่งผลกระทบใด ๆar1
และar2
นอกจากจะถูกกำหนดใหม่เช่น:
var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];
ar1 = ar1.concat(ar2);
alert(ar1);
How do I append to an array in JavaScript?
แต่concat
จริงสร้างใหม่อาร์เรย์ นั่นคือความแตกต่างที่สำคัญ! แต่ฉันจะบอกว่าคำตอบด้านล่างโดย Omnimike นั้นเป็นคำตอบที่ดีที่สุด: ใช้Push.applyเพื่อส่งอาร์เรย์ทั้งหมดไปยังอาร์เรย์ที่มีอยู่โดยไม่ต้องสร้างใหม่
ar1 = ar1.concat(ar2);
จะผนวกเข้ากับar1
ar1
ผนวกar2
แล้วส่งคืนอาร์เรย์ใหม่ เพียงแค่ออกจากส่วนที่ได้รับมอบหมาย ( ar1 = ...
) จากบรรทัดของรหัสนั้นและคุณจะเห็นว่าต้นฉบับ ar1
ไม่ได้เปลี่ยนในความเป็นจริง push
หากคุณต้องการที่จะหลีกเลี่ยงการทำสำเนาคุณจะต้อง ไม่เชื่อฉันเชื่อว่าเอกสารที่: "concat () วิธีการส่งกลับอาร์เรย์ใหม่" concat
ประโยคแรกในเอกสารสำหรับ
ar2
ข้างต้นเป็นอย่างไรก็ตาม ผลมาจากในสถานการณ์ที่จะ.push
= [ar1, [ar2]]
.concat แก้ปัญหานั้นได้ แต่ด้วยการเสียสละของความเร็วและอาร์เรย์ใหม่ที่สร้างขึ้น ในการใช้.push
อย่างถูกต้องในการผนวกอาร์เรย์ให้วนออกองค์ประกอบที่มีอยู่ก่อนแล้วกดแต่ละรายการ ar2.forEach(each => { ar1.push(each); });
การเปรียบเทียบอย่างรวดเร็วบางอย่าง (แต่ละการทดสอบ = 500k องค์ประกอบต่อท้ายและผลลัพธ์เป็นค่าเฉลี่ยของการวิ่งหลายครั้ง) แสดงให้เห็นดังต่อไปนี้:
Firefox 3.6 (Mac):
arr[arr.length] = b
เร็วกว่า (300ms เทียบกับ 800ms)arr.push(b)
เร็วกว่า (500ms เทียบกับ 900 มิลลิวินาที)Safari 5.0 (Mac):
arr[arr.length] = b
เร็วกว่า (90ms เทียบกับ 115ms)arr[arr.length] = b
เร็วกว่า (160ms เทียบกับ 185ms)Google Chrome 6.0 (Mac):
ฉันชอบarr.push()
ไวยากรณ์ที่ดีกว่า แต่ฉันคิดว่าฉันควรใช้arr[arr.length]
เวอร์ชันอย่างน้อยที่สุดในความเร็วแบบดิบ ฉันชอบที่จะเห็นผลลัพธ์ของการทำงานของ IE แม้ว่า
ลูปการเปรียบเทียบของฉัน:
function arrpush_small() {
var arr1 = [];
for (a = 0; a < 100; a++)
{
arr1 = [];
for (i = 0; i < 5000; i++)
{
arr1.push('elem' + i);
}
}
}
function arrlen_small() {
var arr2 = [];
for (b = 0; b < 100; b++)
{
arr2 = [];
for (j = 0; j < 5000; j++)
{
arr2[arr2.length] = 'elem' + j;
}
}
}
function arrpush_large() {
var arr1 = [];
for (i = 0; i < 500000; i++)
{
arr1.push('elem' + i);
}
}
function arrlen_large() {
var arr2 = [];
for (j = 0; j < 500000; j++)
{
arr2[arr2.length] = 'elem' + j;
}
}
ฉันคิดว่ามันคุ้มค่าที่จะพูดถึงว่าการกดสามารถถูกเรียกได้โดยมีอาร์กิวเมนต์หลายตัวซึ่งจะผนวกเข้ากับอาร์เรย์ตามลำดับ ตัวอย่างเช่น:
var arr = ['first'];
arr.push('second', 'third');
console.log(arr);
ด้วยเหตุนี้คุณสามารถใช้ push.apply เพื่อผนวกอาร์เรย์ไปยังอาร์เรย์อื่นดังนี้:
var arr = ['first'];
arr.push('second', 'third');
arr.push.apply(arr, ['forth', 'fifth']);
console.log(arr);
ข้อเขียน ES5มีข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่ผลักดันและนำไปใช้ทำ
การอัปเดต 2016: ด้วยสเปรดคุณไม่จำเป็นต้องใช้apply
อีกต่อไปเช่น:
var arr = ['first'];
arr.push('second', 'third');
arr.push(...['fourth', 'fifth']);
console.log(arr) ;
Array.prototype.push.apply()
แต่
คุณสามารถใช้push
และapply
ฟังก์ชั่นเพื่อผนวกสองอาร์เรย์
var array1 = [11, 32, 75];
var array2 = [99, 67, 34];
Array.prototype.push.apply(array1, array2);
console.log(array1);
มันจะผนวกการarray2
array1
ตอนนี้มีarray1
[11, 32, 75, 99, 67, 34]
รหัสนี้ง่ายกว่าการเขียนfor
ลูปเพื่อคัดลอกแต่ละรายการในอาเรย์
...
โอเปอเรเตอร์แทนการใช้ const a1 = [] const a2 = [5,6,7] const.push(...a2)
แก้ไข: เน้นไวยากรณ์
array1.concat(array2)
ในสถานการณ์นี้ เรียกร้องให้push
ดูเหมือนว่าไม่จำเป็น
ด้วยโอเปอเรเตอร์ ES6 ใหม่การเข้าร่วมสองอาร์เรย์โดยใช้push
จะง่ายยิ่งขึ้น:
var arr = [1, 2, 3, 4, 5];
var arr2 = [6, 7, 8, 9, 10];
arr.push(...arr2);
console.log(arr);
นี้จะเพิ่มเนื้อหาของบนจุดสิ้นสุดของarr2
arr
ถ้าarr
เป็นอาร์เรย์และval
เป็นค่าที่คุณต้องการเพิ่มการใช้:
arr.push(val);
เช่น
var arr = ['a', 'b', 'c'];
arr.push('d');
console.log(arr);
ใช้concat
:
a = [1, 2, 3];
b = [3, 4, 5];
a = a.concat(b);
console.log(a);
Javascript กับECMAScript 5มาตรฐานซึ่งสนับสนุนโดยเบราว์เซอร์ส่วนใหญ่ตอนนี้คุณสามารถใช้apply()
เพื่อผนวกไปarray1
array2
var array1 = [3, 4, 5];
var array2 = [1, 2];
Array.prototype.push.apply(array2, array1);
console.log(array2); // [1, 2, 3, 4, 5]
Javascript ที่มีมาตรฐานECMAScript 6ซึ่งรองรับโดย Chrome และ FF และ IE Edge คุณสามารถใช้spread
โอเปอเรเตอร์ได้:
"use strict";
let array1 = [3, 4, 5];
let array2 = [1, 2];
array2.push(...array1);
console.log(array2); // [1, 2, 3, 4, 5]
spread
ผู้ประกอบการจะเข้ามาแทนที่array2.push(...array1);
ด้วยarray2.push(3, 4, 5);
เมื่อเบราว์เซอร์ที่เป็นความคิดตรรกะ
คะแนนโบนัส
หากคุณต้องการสร้างตัวแปรอื่นเพื่อเก็บรายการทั้งหมดจากทั้งสองอาร์เรย์คุณสามารถทำได้:
ES5 var combinedArray = array1.concat(array2);
ES6 const combinedArray = [...array1, ...array2]
ผู้ดำเนินการแพร่กระจาย ( ...
) คือการกระจายรายการทั้งหมดจากคอลเลกชัน
หากคุณต้องการผนวกสองอาร์เรย์ -
var a = ['a', 'b'];
var b = ['c', 'd'];
จากนั้นคุณสามารถใช้:
var c = a.concat(b);
และถ้าคุณต้องการเพิ่มการบันทึกg
ไปยังอาร์เรย์ ( var a=[]
) จากนั้นคุณสามารถใช้:
a.push('g');
push()
วิธีการเพิ่มรายการใหม่ไปยังจุดสิ้นสุดของอาร์เรย์และผลตอบแทนความยาวใหม่ ตัวอย่าง:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");
// The result of fruits will be:
Banana, Orange, Apple, Mango, Kiwi
คำตอบที่แน่นอนสำหรับคำถามของคุณได้รับคำตอบแล้ว แต่ลองมาดูวิธีอื่นในการเพิ่มรายการในอาร์เรย์
unshift()
วิธีการเพิ่มรายการใหม่ที่จุดเริ่มต้นของอาร์เรย์และผลตอบแทนความยาวใหม่ ตัวอย่าง:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon", "Pineapple");
// The result of fruits will be:
Lemon, Pineapple, Banana, Orange, Apple, Mango
และสุดท้ายใช้concat()
วิธีนี้เพื่อเข้าร่วมสองอาร์เรย์หรือมากกว่า ตัวอย่าง:
var fruits = ["Banana", "Orange"];
var moreFruits = ["Apple", "Mango", "Lemon"];
var allFruits = fruits.concat(moreFruits);
// The values of the children array will be:
Banana, Orange, Apple, Mango, Lemon
มีสองวิธีในการต่อท้ายอาร์เรย์ใน JavaScript:
1)push()
วิธีการเพิ่มองค์ประกอบหนึ่งหรือถึงจุดสิ้นสุดของอาร์เรย์และส่งกลับความยาวใหม่ของอาร์เรย์
var a = [1, 2, 3];
a.push(4, 5);
console.log(a);
เอาท์พุท:
[1, 2, 3, 4, 5]
2)unshift()
วิธีการเพิ่มองค์ประกอบหนึ่งหรือจุดเริ่มต้นของอาร์เรย์และส่งกลับความยาวใหม่ของอาร์เรย์:
var a = [1, 2, 3];
a.unshift(4, 5);
console.log(a);
เอาท์พุท:
[4, 5, 1, 2, 3]
3)concat()
วิธีการที่ใช้ในการผสานสองหรือมากกว่าอาร์เรย์ วิธีนี้จะไม่เปลี่ยนอาร์เรย์ที่มีอยู่ แต่จะส่งกลับอาร์เรย์ใหม่แทน
var arr1 = ["a", "b", "c"];
var arr2 = ["d", "e", "f"];
var arr3 = arr1.concat(arr2);
console.log(arr3);
เอาท์พุท:
[ "a", "b", "c", "d", "e", "f" ]
4)คุณสามารถใช้.length
คุณสมบัติของอาร์เรย์เพื่อเพิ่มองค์ประกอบไปยังจุดสิ้นสุดของอาร์เรย์:
var ar = ['one', 'two', 'three'];
ar[ar.length] = 'four';
console.log( ar );
เอาท์พุท:
["one", "two", "three", "four"]
5)splice()
วิธีการเปลี่ยนแปลงเนื้อหาของอาร์เรย์โดยการเอาองค์ประกอบที่มีอยู่และ / หรือการเพิ่มองค์ประกอบใหม่:
var myFish = ["angel", "clown", "mandarin", "surgeon"];
myFish.splice(4, 0, "nemo");
//array.splice(start, deleteCount, item1, item2, ...)
console.log(myFish);
เอาท์พุท:
["angel", "clown", "mandarin", "surgeon","nemo"]
6)คุณยังสามารถเพิ่มองค์ประกอบใหม่ให้กับอาร์เรย์ได้ง่ายๆโดยการระบุดัชนีใหม่และกำหนดค่า:
var ar = ['one', 'two', 'three'];
ar[3] = 'four'; // add new element to ar
console.log(ar);
เอาท์พุท:
["one", "two","three","four"]
push
ทำจริงๆ: มันปรับเปลี่ยนอาเรย์ดั้งเดิมโดยการผลักองค์ประกอบใหม่เข้ามา ฉันอ่านผิดหรือควรแก้ไขได้ไหม
ตอนนี้คุณสามารถใช้ประโยชน์จากไวยากรณ์ ES6 และทำ:
let array = [1, 2];
console.log([...array, 3]);
ทำให้อาร์เรย์ดั้งเดิมไม่เปลี่ยนรูป
หากคุณรู้จักดัชนีสูงสุด (เช่นเก็บไว้ในตัวแปร "i") คุณสามารถทำได้
myArray[i + 1] = someValue;
อย่างไรก็ตามหากคุณไม่ทราบคุณสามารถใช้งานได้
myArray.push(someValue);
เป็นคำตอบอื่น ๆ ที่แนะนำหรือคุณสามารถใช้
myArray[myArray.length] = someValue;
โปรดทราบว่าอาร์เรย์จะเป็นศูนย์ดังนั้นความยาวจะส่งกลับดัชนีสูงสุดบวกหนึ่ง
นอกจากนี้โปรดทราบว่าคุณไม่จำเป็นต้องเพิ่มตามลำดับและคุณสามารถข้ามค่าได้เช่นเดียวกับใน
myArray[myArray.length + 1000] = someValue;
ในกรณีนี้ค่าในระหว่างนั้นจะมีค่าไม่ได้กำหนด
ดังนั้นจึงเป็นแนวปฏิบัติที่ดีเมื่อวนลูปผ่าน JavaScript เพื่อตรวจสอบว่ามีค่าจริง ณ จุดนั้น
สิ่งนี้สามารถทำได้โดยสิ่งต่อไปนี้:
if(myArray[i] === "undefined"){ continue; }
หากคุณมั่นใจว่าคุณไม่มีเลขศูนย์ใด ๆ อยู่ในอาร์เรย์คุณสามารถทำได้ดังนี้
if(!myArray[i]){ continue; }
ตรวจสอบให้แน่ใจในกรณีนี้ว่าคุณไม่ได้ใช้เป็นเงื่อนไข myArray [i] (เนื่องจากบางคนบนอินเทอร์เน็ตแนะนำตามท้ายว่าทันทีที่ฉันมีค่ามากกว่าดัชนีสูงสุดจะส่งกลับไม่ได้กำหนดซึ่งประเมิน เท็จ)
"undefined"
จริงๆ มันจะต้องอ่านvoid 0
! "undefined"
เป็นสตริงและ"undefined" !== void 0
ดังนั้นคุณif(myArray[i]
เป็นเท็จเว้นแต่อาร์เรย์ที่ดัชนีมีการตั้งค่าสตริงที่มีเนื้อหาเทียบเท่าi
'u'+'n'+'d'+'e'+'f'+'i'+'n'+'e'+'d'
นอกจากนี้ทราบว่าคุณไม่ควรใช้แทนการใช้งานundefined
void 0
เพราะvoid 0
มักจะเป็นค่าที่ไม่ได้กำหนดในขณะที่undefined
สามารถกำหนดผ่านสิ่งที่ชอบfunction x(undefined) { alert(undefined) } x("hello world")
ดังนั้นคุณไม่สามารถแน่ใจได้ว่ามีคนตั้งค่าwindow["undefined"]=1
หรือคล้ายกันโดยไม่ตั้งใจ
ผนวกองค์ประกอบเดียว
//Append to the end
arrName.push('newName1');
//Prepend to the start
arrName.unshift('newName1');
//Insert at index 1
arrName.splice(1, 0,'newName1');
//1: index number, 0: number of element to remove, newName1: new element
// Replace index 3 (of exists), add new element otherwise.
arrName[3] = 'newName1';
ผนวกองค์ประกอบหลายรายการ
//Insert from index number 1
arrName.splice(1, 0,'newElemenet1', 'newElemenet2', 'newElemenet3');
//1: index number from where insert starts,
//0: number of element to remove,
//newElemenet1,2,3: new elements
ผนวกอาร์เรย์
//join two or more arrays
arrName.concat(newAry1, newAry2);
//newAry1,newAry2: Two different arrays which are to be combined (concatenated) to an existing array
arrName.push('newElemenet1, newElemenet2, newElemenet3')
ล่ะ
arrName
1
concat()
แน่นอนสามารถใช้กับอาร์เรย์ 2 มิติได้เช่นกัน ไม่จำเป็นต้องวนซ้ำ
var a = [[1, 2], [3, 4]];
var b = [["a", "b"], ["c", "d"]];
b = b.concat (a);
การแจ้งเตือน (ข [2] [1]); // ผลลัพธ์ 2
myarray[myarray.length] = 'new element value added to the end of the array';
myarray.length ส่งคืนจำนวนสตริงในอาร์เรย์ JS เป็นศูนย์ดังนั้นองค์ประกอบคีย์ถัดไปของอาร์เรย์จะเป็นความยาวปัจจุบันของอาร์เรย์ EX:
var myarray = [0, 1, 2, 3],
myarrayLength = myarray.length; //myarrayLength is set to 4
เพียงแค่ต้องการเพิ่มข้อมูลโค้ดสำหรับการเพิ่มองค์ประกอบแบบไม่ทำลาย
var newArr = oldArr.concat([newEl]);
เนื่องจากArray.prototype.pushเพิ่มองค์ประกอบหนึ่งรายการขึ้นไปที่ส่วนท้ายของอาร์เรย์และคืนค่าความยาวของอาร์เรย์ใหม่บางครั้งเราต้องการเพียงแค่รับอาร์เรย์ใหม่ล่าสุดเพื่อให้เราสามารถทำสิ่งต่อไปนี้:
const arr = [1, 2, 3];
const val = 4;
arr.concat([val]); // [1, 2, 3, 4]
หรือเพียงแค่:
[...arr, val] // [1, 2, 3, 4]
หากคุณกำลังใช้ ES6 คุณสามารถใช้ตัวดำเนินการสเปรดเพื่อทำ
var arr = [
"apple",
"banana",
"cherry"
];
var arr2 = [
"dragonfruit",
"elderberry",
"fig"
];
arr.push(...arr2);
คุณสามารถทำได้โดยใช้คุณลักษณะใหม่ของจาวาสคริปต์ Es 6:
// initialize array
var arr = [
"Hi",
"Hello",
"Bangladesh"
];
// append new value to the array
arr= [...arr , "Feni"];
// or you can put a variable value
var testValue = "Cool";
arr = [...arr , testValue ];
console.log(arr);
// final output [ 'Hi', 'Hello', 'Bangladesh', 'Feni', 'Cool' ]
หากคุณต้องการรวม 2 อาร์เรย์โดยไม่ซ้ำกันคุณสามารถลองใช้รหัสด้านล่าง
array_merge = function (arr1, arr2) {
return arr1.concat(arr2.filter(function(item){
return arr1.indexOf(item) < 0;
}))
}
การใช้งาน:
array1 = ['1', '2', '3']
array2 = ['2', '3', '4', '5']
combined_array = array_merge(array1, array2)
ผลลัพธ์: [1,2,3,4,5]
ในการผนวกรายการเดียวเข้ากับอาร์เรย์ให้ใช้push()
วิธีการที่วัตถุ Array มีให้:
const fruits = ['banana', 'pear', 'apple']
fruits.push('mango')
console.log(fruits)
push()
กลายพันธุ์อาร์เรย์เดิม
หากต้องการสร้างอาร์เรย์ใหม่แทนให้ใช้concat()
วิธี Array:
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango')
console.log(allfruits)
โปรดสังเกตconcat()
ว่าไม่ได้เพิ่มรายการลงในอาร์เรย์ แต่สร้างอาร์เรย์ใหม่ซึ่งคุณสามารถกำหนดให้กับตัวแปรอื่นหรือกำหนดให้กับอาร์เรย์เดิมอีกครั้ง (ประกาศเป็นอาร์เรย์let
เนื่องจากคุณไม่สามารถกำหนดใหม่const
):
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango')
console.log(allfruits)
let fruits = ['banana', 'pear', 'apple']
fruits = fruits.concat('mango')
ในการผนวกหลายรายการเข้ากับอาร์เรย์คุณสามารถใช้push()
โดยการเรียกมันด้วยอาร์กิวเมนต์หลายตัว:
const fruits = ['banana', 'pear', 'apple']
fruits.push('mango', 'melon', 'avocado')
console.log(fruits)
คุณยังสามารถใช้concat()
วิธีที่คุณเห็นมาก่อนส่งผ่านรายการที่คั่นด้วยเครื่องหมายจุลภาค:
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango', 'melon', 'avocado')
console.log(allfruits)
หรืออาร์เรย์:
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat(['mango', 'melon', 'avocado'])
console.log(allfruits)
โปรดจำไว้ว่าตามที่อธิบายไว้ก่อนหน้านี้วิธีนี้ไม่ได้กลายพันธุ์อาร์เรย์เดิม แต่จะส่งกลับอาร์เรย์ใหม่
คุณ. push () ค่านั้นใน ตัวอย่าง: array.push (value);
หากคุณต้องการผนวกค่าเดียวลงในอาร์เรย์ให้ใช้วิธีการพุช มันจะเพิ่มองค์ประกอบใหม่ในตอนท้ายของอาร์เรย์
แต่ถ้าคุณต้องการเพิ่มองค์ประกอบหลายรายการให้เก็บองค์ประกอบไว้ในอาร์เรย์ใหม่และเชื่อมโยงอาร์เรย์ที่สองกับอาร์เรย์แรก ... ในแบบที่คุณต้องการ
arr=['a','b','c'];
arr.push('d');
//now print the array in console.log and it will contain 'a','b','c','d' as elements.
console.log(array);
เราไม่มีฟังก์ชั่นผนวกสำหรับ Array ใน javascript แต่เรามีpushและunshiftลองจินตนาการว่าคุณมี array ด้านล่าง:
var arr = [1, 2, 3, 4, 5];
และเราชอบผนวกค่าให้กับอาร์เรย์นี้เราสามารถทำได้ arr.push (6) และมันจะเพิ่ม 6 ต่อท้ายอาร์เรย์:
arr.push(6); // return [1, 2, 3, 4, 5, 6];
นอกจากนี้เรายังสามารถใช้ unshift ดูวิธีที่เราสามารถใช้สิ่งนี้:
arr.unshift(0); //return [0, 1, 2, 3, 4, 5];
เป็นฟังก์ชั่นหลักในการเพิ่มหรือเพิ่มค่าใหม่ในอาร์เรย์
คุณสามารถใช้วิธีการพุช
Array.prototype.append = function(destArray){
destArray = destArray || [];
this.push.call(this,...destArray);
return this;
}
var arr = [1,2,5,67];
var arr1 = [7,4,7,8];
console.log(arr.append(arr1));// [7, 4, 7, 8, 1, 4, 5, 67, 7]
console.log(arr.append("Hola"))//[1, 2, 5, 67, 7, 4, 7, 8, "H", "o", "l", "a"]
push()
เพิ่มองค์ประกอบใหม่ในตอนท้ายของอาร์เรย์
pop()
เอาองค์ประกอบจากจุดสิ้นสุดของอาร์เรย์
ในการผนวกวัตถุ (เช่นสตริงหรือตัวเลข) เพื่อใช้อาร์เรย์ -
array.push(toAppend);
ต่อท้ายรายการในอาร์เรย์
let fruits =["orange","banana","apple","lemon"]; /*array declaration*/
fruits.push("avacado"); /* Adding an element to the array*/
/*displaying elements of the array*/
for(var i=0; i < fruits.length; i++){
console.log(fruits[i]);
}
คุณสามารถใช้การกด () หากคุณต้องการเพิ่มค่าเช่น arr.push("Test1", "Test2");
หากคุณมีอาร์เรย์คุณสามารถใช้ concat () เช่น Array1.concat(Array2)
หากคุณมีองค์ประกอบเดียวที่จะเพิ่มคุณสามารถลองความยาว menthod เช่น array[aray.length] = 'test';