javascript - كيفية إلحاق شيء إلى صفيف؟




15 Answers

إذا كنت تقوم بإلحاق متغير واحد فقط ، فإن push() يعمل بشكل جيد. إذا كنت تريد إلحاق مصفوفة أخرى ، فاستخدم concat() :

var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];

var ar3 = ar1.concat(ar2);

alert(ar1);
alert(ar2);
alert(ar3);

سوف يبصقون:

"1,2,3"
"4,5,6"
"1,2,3,4,5,6"

لا يؤثر concat على ar2 و ar2 ما لم يتم تعيينهم ، على سبيل المثال:

ar1 = ar1.concat(ar2);
alert(ar1);

سوف يعرض:

"1,2,3,4,5,6"

الكثير من المعلومات العظيمة here

javascript arrays append

كيف يمكنني إلحاق كائن (مثل سلسلة أو رقم) بصفيف في JavaScript؟




أعتقد أنه من الجدير بالذكر أنه يمكن استدعاء الدفع بحجج متعددة ، سيتم إلحاقها بالصفيف بالترتيب. فمثلا:

var arr = ['first'];
arr.push('second', 'third');
console.log(arr); // ['first', 'second', 'third']

ونتيجة لذلك ، يمكنك استخدام push.apply لإلحاق مصفوفة بمجموعة أخرى مثل:

arr.push.apply(arr, ['forth', 'fifth']);
console.log(arr); // ['first', 'second', 'third', 'forth', 'fifth']

يحتوي ES10 المشروح على مزيد من المعلومات حول push والتطبيق بالضبط.

تحديث 2016: مع spread ، لن تحتاج بعد الآن إلى apply ، مثل:

arr.push(...['fourth', 'fifth']);
console.log(arr) // ['first', 'second', 'third', 'fourth', 'fifth']



إذا كان arr صفيفًا ، وكانت val هي القيمة التي ترغب في إضافتها:

arr.push(val);

على سبيل المثال

arr = ['a', 'b', 'c'];
arr.push('d');
console.log(arr);

سوف يسجل:

['a', 'b', 'c', 'd']



مع مشغّل توزيع ES6 الجديد ، يصبح الانضمام إلى صفيفين باستخدام push أسهل:

var arr = [1, 2, 3, 4, 5];
var arr2 = [6, 7, 8, 9, 10];
arr.push(...arr2);
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

هذا يضيف محتويات arr2 على نهاية arr .

Babel REPL مثال




جافا سكريبت مع معيار 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]

جافا سكريبت مع معيار 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]

سيحل عامل array2.push(...array1); محل array2.push(...array1); مع array2.push(3, 4, 5); عندما يفكر المتصفح في المنطق.

نقطة إضافية

إذا كنت ترغب في إنشاء متغير آخر لتخزين كافة العناصر من كلا الصفيف ، فيمكنك القيام بذلك:

ES5 var combinedArray = array1.concat(array2);

ES6 const combinedArray = [...array1, ...array2]

عامل الانتشار ( ... ) هو توزيع جميع العناصر من مجموعة.




هناك طريقتان لإلحاق صفيف في 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) يمكنك استخدام خاصية array .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"]



الآن ، يمكنك الاستفادة من بنية ES6 وفعل ما يلي:

let array = [1, 2];
console.log([...array, 3]);

الحفاظ على المجموعة الأصلية غير قابل للتغيير.




concat() ، بالطبع ، يمكن استخدامها مع صفائف الأبعاد 2 كذلك. لا الحلقات المطلوبة.

var a = [[1، 2]، [3، 4]]؛

var b = [["" a "،" b "]، [" c "،" d "]]]؛

b = b.concat (a)؛

تنبيه ب ([2] [1])؛ // result 2




يمكنك فعل ذلك باستخدام ميزة javascript 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' ]



إذا كنت تستخدم ES6 ، فيمكنك استخدام عامل التوسيع للقيام بذلك.

var arr = [
    "apple",
    "banana",
    "cherry"
];

var arr2 = [
    "dragonfruit",
    "elderberry",
    "fig"
];

arr.push(...arr2);



إلحاق قيمة إلى صفيف

نظرًا لأن push() يضيف push() واحدًا أو أكثر إلى نهاية صفيف ويعيد طول الصفيف الجديد ، فأحيانًا نريد فقط الحصول على مجموعة محدثة جديدة حتى يمكننا القيام بشيء مثل:

const arr = [1, 2, 3];
const val = 4;

arr.concat([val]); // [1, 2, 3, 4]

أو فقط:

[...arr, val] // [1, 2, 3, 4]



إذا كنت تريد إلحاق قيمة واحدة في مصفوفة ، فما عليك سوى استخدام طريقة الدفع. ستضيف عنصرًا جديدًا في نهاية الصفيف.

ولكن إذا كنت تنوي إضافة عناصر متعددة ، فقم بتخزين العناصر في صفيف جديد وقم بتنسيق الصفيف الثاني مع المصفوفة الأولى ... إما بالطريقة التي تريدها.

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.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() يوفره كائن الصفيف:

const fruits = ['banana', 'pear', 'apple']
fruits.push('mango')
console.log(fruits)

push() يتغير المصفوفة الأصلية.

لإنشاء صفيف جديد بدلاً من ذلك ، استخدم الأسلوب firstArray.concat(secondArray) 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)

js let fruits = ['banana', 'pear', 'apple'] fruits = fruits.concat('mango')

إلحاق عناصر متعددة

لإلحاق عنصر متعدد بصفيف ، يمكنك استخدام push() عن طريق الاتصال به مع وسائط متعددة:

const fruits = ['banana', 'pear', 'apple']
fruits.push('mango', 'melon', 'avocado')
console.log(fruits)

يمكنك أيضًا استخدام طريقة firstArray.concat(secondArray) التي رأيتها من قبل ، وتمرير قائمة بالعناصر المفصولة بفاصلة:

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)

تذكر أنه كما هو موضح سابقًا ، لا تؤدي هذه الطريقة إلى تحوير الصفيف الأصلي ، ولكنها تُرجع صفيفًا جديدًا.

نشرت أصلا في https://flaviocopes.com/how-to-append-item-to-array/




يمكنك استخدام push () إذا كنت ترغب في إضافة قيم مثل arr.push("Test1", "Test2");

إذا كان لديك صفيف يمكنك استخدام concat () مثل Array1.concat(Array2)

إذا كان لديك عنصر واحد فقط لتضيفه ، فيمكنك أيضًا تجربة طول menthod على سبيل المثال array[aray.length] = 'test';




Related