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



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

Question

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




مع مشغّل توزيع 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 مثال




باستخدام الأسلوب push() سيتم إلحاق عنصر إلى صفيف. انظر المثال أدناه.

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




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

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







أنت .push () التي قيمة. مثال: array.push (قيمة)؛




دع خاصية طول الصفيف تقوم بالعمل:

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



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

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

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

b = b.concat (a)؛

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




هناك طريقتان لإلحاق صفيف في 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"]



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

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']



إذا كنت تريد دمج صفيفتين بدون التكرار ، فيمكنك تجربة الرمز أدناه

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]




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



Links