উত্তর:
আপনি যদি দুটিরও বেশি অ্যারে সংশ্লেষ করেন তবে concat()
সুবিধার্থে এবং সম্ভাব্য পারফরম্যান্সে যাওয়ার উপায়।
var a = [1, 2], b = ["x", "y"], c = [true, false];
var d = a.concat(b, c);
console.log(d); // [1, 2, "x", "y", true, false];
মাত্র দুটি অ্যারে push
যুক্ত করার জন্য, অ্যারেতে যুক্ত হওয়া উপাদানগুলির সমন্বয়ে একাধিক যুক্তি গ্রহণ করার বিষয়টি সত্য হিসাবে নতুন অ্যারে তৈরি না করে এক অ্যারে থেকে অন্য প্রান্তে উপাদান যুক্ত করার পরিবর্তে ব্যবহার করা যেতে পারে। সঙ্গে slice()
এটাও পরিবর্তে ব্যবহার করা যেতে পারে concat()
কিন্তু এই কাজ থেকে কোনো কর্মক্ষমতা সুবিধা উপস্থিত হতে পারে ।
var a = [1, 2], b = ["x", "y"];
a.push.apply(a, b);
console.log(a); // [1, 2, "x", "y"];
ECMAScript 2015 এবং তারপরে, এটি আরও আরও কমে যেতে পারে
a.push(...b)
তবে, মনে হচ্ছে যে বড় অ্যারেগুলির জন্য (১০,০০,০০০ সদস্য বা তার বেশি সদস্যের ক্রম) এর জন্য, উপাদানগুলির একটি অ্যারে পাস করার কৌশলটি push
(হয় ব্যবহার করা হবে apply()
বা ECMAScript 2015 স্প্রেড অপারেটর) ব্যর্থ হতে পারে। এই জাতীয় অ্যারেগুলির জন্য, একটি লুপ ব্যবহার করা আরও ভাল পদ্ধতির। বিশদ জানতে https://stackoverflow.com/a/17368101/96100 দেখুন ।
a.concat(b)
পরীক্ষার কেসটি অযথাই অ্যারের একটি অনুলিপি তৈরি করে a
তা ফেলে দেওয়ার মতো বলে মনে হচ্ছে ।
concat()
সাধারণত দ্রুত হয় বলে মনে হয়। স্থানে বিদ্যমান অ্যারেতে একটি অ্যারে সংশ্লেষ করার ক্ষেত্রে, push()
যাওয়ার উপায়। আমি আমার উত্তর আপডেট।
[].concat.apply([], [array1, array2, ...])
সম্পাদনা : দক্ষতার প্রমাণ: http://jsperf.com/m Multi-array-concat/7
সম্পাদনা 2 : টিম সুপিনি মন্তব্যগুলিতে উল্লেখ করেছেন যে এর ফলে দোভাষীকে কল স্ট্যাকের আকার ছাড়িয়ে যেতে পারে। এটি সম্ভবত জেএস ইঞ্জিনের উপর নির্ভরশীল, তবে আমি কমপক্ষে Chrome এ "সর্বাধিক কল স্ট্যাকের আকারও অতিক্রম করে" পেয়েছি। টেস্ট কেস: [].concat.apply([], Array(300000).fill().map(_=>[1,2,3]))
। (আমি বর্তমানে স্বীকৃত উত্তরটি ব্যবহার করে একই ত্রুটিটিও অর্জন করেছি, সুতরাং কেউ এ জাতীয় ব্যবহারের ক্ষেত্রে প্রত্যাশা করছেন বা অন্যের জন্য একটি গ্রন্থাগার তৈরি করছেন, আপনি যে সমাধানটি বেছে নেবেন তা বিবেচনা না করেই বিশেষ পরীক্ষার প্রয়োজন হতে পারে))
আপনি এখন স্প্রে সিনট্যাক্স ব্যবহার করতে পারবেন অ্যারেগুলিকে সংযুক্ত করতে:
const arr1 = [0, 1, 2],
arr2 = [3, 4, 5];
const result1 = [...arr1, ...arr2]; // -> [0, 1, 2, 3, 4, 5]
// or...
const result2 = [...arr2, ...arr1]; // -> [3, 4, 5, 0, 1, 2]
concat()
পদ্ধতি দুই বা ততোধিক অ্যারে যোগদানের জন্য ব্যবহার করা হয়। এটি বিদ্যমান অ্যারেগুলিকে পরিবর্তন করে না, এটি কেবল যুক্ত অ্যারেগুলির একটি অনুলিপি প্রদান করে।
array1 = array1.concat(array2, array3, array4, ..., arrayN);
concat
মূলত অ্যারেটি পরিবর্তন না করে নতুন অ্যারে তৈরির জন্য বিশেষত ব্যবহৃত হয়। আপনি যদি আপডেট করতে চান তবে আপনাকে array1
ব্যবহার করতে হবেarray1.push(...array2, ...array3, ...array4)
একাধিক অ্যারের উপসংহার পরিচালনা করতে অ্যারে.প্রোটোটাইপ.কনকাট. অ্যাপ্লিকেশন ব্যবহার করুন:
var resultArray = Array.prototype.concat.apply([], arrayOfArraysToConcat);
উদাহরণ:
var a1 = [1, 2, 3],
a2 = [4, 5],
a3 = [6, 7, 8, 9];
Array.prototype.concat.apply([], [a1, a2, a3]); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
আপনি যদি মানচিত্র / ফিল্টার / বাছাই ইত্যাদির মাধ্যমে ফলাফলটি পাইপিংয়ের মাঝখানে থাকেন এবং আপনি অ্যারের অ্যারেটি কনক্যাট করতে চান তবে আপনি ব্যবহার করতে পারেন reduce
let sorted_nums = ['1,3', '4,2']
.map(item => item.split(',')) // [['1', '3'], ['4', '2']]
.reduce((a, b) => a.concat(b)) // ['1', '3', '4', '2']
.sort() // ['1', '2', '3', '4']
একাধিক অ্যারে এবং ES6 অ্যারের জন্য, ব্যবহার করুন
Array.prototype.concat(...arr);
উদাহরণ স্বরূপ:
const arr = [[1, 2, 3], [4, 5, 6], [7, 8 ,9]];
const newArr = Array.prototype.concat(...arr);
// output: [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
newArr = Array.from(new Set(newArr));
।
any[]
? টাইপিং আছে - অদ্ভুত।
[].concat.apply([], ...arr)
বড় পরিমাণে আরও ভাল অভিনয় করে।
এখন আমরা একাধিক অ্যারে ব্যবহার করে একত্রিত করতে পারি ES6
Spread
। concat()
অ্যারেগুলিকে সংযুক্ত করার পরিবর্তে একাধিক অ্যারেকে এক সমতল অ্যারেগুলিতে একত্রিত করতে স্প্রেড সিনট্যাক্স ব্যবহার করে চেষ্টা করুন। উদাহরণ:
var a = [1,2];
var b = [3,4];
var c = [5,6,7];
var d = [...a, ...b, ...c];
// resulting array will be like d = [1,2,3,4,5,6,7]
পারফোনেন্স তুলনা করতে আপনি jsperf.com সাইট ব্যবহার করতে পারেন । এখানে কনকটের লিঙ্ক is ।
এর মধ্যে যোগ করা তুলনা:
var c = a.concat(b);
এবং:
var c = [];
for (i = 0; i < a.length; i++) {
c.push(a[i]);
}
for (j = 0; j < b.length; j++) {
c.push(b[j]);
}
দ্বিতীয়টি ক্রোমে প্রায় 10 গুণ ধীর।
push.apply()
যা concat()
ক্রোম ব্যতীত অন্য ব্রাউজারগুলির চেয়ে দ্রুত বলে মনে হচ্ছে । আমার উত্তর দেখুন।
কনক্যাট ফাংশন সহ সহজে:
var a = [1,2,3];
var b = [2,3,4];
a = a.concat(b);
>> [1,2,3,2,3,4]
এখানে একটি ফাংশন রয়েছে যার মাধ্যমে আপনি একাধিক অ্যারে সংযুক্ত করতে পারেন ate
function concatNarrays(args) {
args = Array.prototype.slice.call(arguments);
var newArr = args.reduce( function(prev, next) {
return prev.concat(next) ;
});
return newArr;
}
উদাহরণ -
console.log(concatNarrays([1, 2, 3], [5, 2, 1, 4], [2,8,9]));
আউটপুট হবে
[1,2,3,5,2,1,4,2,8,9]
আপনার যদি অ্যারের অ্যারে থাকে এবং উপাদানগুলিকে একক অ্যারেতে সংমিশ্রিত করতে চান তবে নিম্নলিখিত কোডটি চেষ্টা করুন (ES2015 প্রয়োজন):
let arrOfArr = [[1,2,3,4],[5,6,7,8]];
let newArr = [];
for (let arr of arrOfArr) {
newArr.push(...arr);
}
console.log(newArr);
//Output: [1,2,3,4,5,6,7,8];
বা যদি আপনি কার্যকরী প্রোগ্রামিংয়ে থাকেন
let arrOfArr = [[1,2,3,4],[5,6,7,8]];
let newArr = arrOfArr.reduce((result,current)=>{
result.push(...current);
return result;
});
console.log(newArr);
//Output: [1,2,3,4,5,6,7,8];
অথবা স্প্রেড অপারেটর ছাড়াই ইএস 5 সিনট্যাক্সের সাথে আরও ভাল
var arrOfArr = [[1,2,3,4],[5,6,7,8]];
var newArr = arrOfArr.reduce((result,current)=>{
return result.concat(current);
});
console.log(newArr);
//Output: [1,2,3,4,5,6,7,8];
আপনি যদি না জানেন তবে এই উপায়টি কার্যকর y কোড সময় অ্যারে।
ES6 দিয়ে সংক্ষিপ্ত করুন।
new Set([].concat(...Array));
এটি একত্রে এবং একাধিক অ্যারে অনন্য করে;
new Set()
সদৃশ আইটেম সরিয়ে না। শুধু এটি অপসারণ। [].concat(...Array)
পুশের সাথে অ্যারে মার্জ করুন :
const array1 = [2, 7, 4];
const array2 = [3, 5,9];
array1.push(...array2);
console.log(array1)
কনক্যাট এবং স্প্রেড অপারেটর ব্যবহার :
const array1 = [1,2];
const array2 = [3,4];
// Method 1: Concat
const combined1 = [].concat(array1, array2);
// Method 2: Spread
const combined2 = [...array1, ...array2];
console.log(combined1);
console.log(combined2);
কনক্যাট করার জন্য যদি কেবল দুটি অ্যারে থাকে এবং আপনার আসলে সংযোজন করা দরকার নতুন কোনও তৈরির পরিবর্তে অ্যারে , ধাক্কা বা লুপটি যাওয়ার উপায়।
বেঞ্চমার্ক: https://jsperf.com/concat-small-arrays-vs-push-vs-loop/
এটা চেষ্টা কর:
i=new Array("aaaa", "bbbb");
j=new Array("cccc", "dddd");
i=i.concat(j);
যদি এন অ্যারেগুলি ডাটাবেস থেকে প্রাপ্ত হয় এবং হার্ডকোড না হয় তবে আমি এটি ES6 ব্যবহার করে এটি করব
let get_fruits = [...get_fruits , ...DBContent.fruit];