জাভাস্ক্রিপ্ট অ্যারে স্প্লাইস বনাম স্লাইস


190

মধ্যে পার্থক্য কি spliceএবং slice?

$scope.participantForms.splice(index, 1);
$scope.participantForms.slice(index, 1);

2
স্প্লাইস এবং স্লাইস অন্তর্নির্মিত জাভাস্ক্রিপ্ট কমান্ডগুলি - বিশেষত AngularJS কমান্ড নয়। স্লাইস "স্টার্ট" থেকে অ্যারে উপাদানগুলি "শেষ" নির্দিষ্টকরণকারীর ঠিক আগে পর্যন্ত প্রদান করে returns স্প্লাইস প্রকৃত অ্যারেটিকে রূপান্তরিত করে এবং "শুরু" থেকে শুরু করে নির্দিষ্ট উপাদানগুলির সংখ্যা রাখে। গুগলের এ সম্পর্কে প্রচুর তথ্য রয়েছে, কেবল অনুসন্ধান করুন।
শ্রুণী

1
এই প্রশ্নটি আপনাকে স্ট্যাকওভারফ্লো.com
ফেবিও লুইজ

উত্তর:


259

splice()মূল অ্যারে পরিবর্তিত হয় যেখানে slice()না উভয়ই অ্যারে অবজেক্ট প্রদান করে।

নীচের উদাহরণগুলি দেখুন:

var array=[1,2,3,4,5];
console.log(array.splice(2));

এই ফিরে আসবে [3,4,5]মূল অ্যারের প্রভাবিত হয় ফলে arrayহচ্ছে [1,2]

var array=[1,2,3,4,5]
console.log(array.slice(2));

এই ফিরে আসবে [3,4,5]মূল অ্যারের প্রভাবিত হয় না ফলে সঙ্গে arrayহচ্ছে [1,2,3,4,5]

নীচে সরল ফিজল যা এটি নিশ্চিত করে:

//splice
var array=[1,2,3,4,5];
console.log(array.splice(2));

//slice
var array2=[1,2,3,4,5]
console.log(array2.slice(2));


console.log("----after-----");
console.log(array);
console.log(array2);


20
এটি আরও লক্ষণীয় যে স্লাইস () অ্যারে পদ্ধতিটি কোনও যুক্তি পাস না করে অ্যারে অনুলিপি করতে ব্যবহৃত হতে পারেarr1 = arr0.slice()
এমজি জিএম

3
আপনি এটি ভাবতে পারেন spliceযেমন আপনার কাছ থেকে ট্যাক্স নেওয়ার মতো কোনও সরকার। যদিও sliceআরও একটি অনুলিপি-পেস্ট লোক।
রেডবিএক্স

.splice()হয় অত্যন্ত unintuitive, আমি শুধু জিনিসটা কেন মূল অ্যারের উল্লেখ ফিরছিলেন চেষ্টা বয়সের অতিবাহিত undefinedনা হওয়া পর্যন্ত আমি এই থ্রেডে পাওয়া যায় নি।
নিক্সিনোভা

61

স্প্লাইস এবং স্লাইস উভয়ই জাভাস্ক্রিপ্ট অ্যারে ফাংশন।

স্প্লাইস বনাম স্লাইস

  1. স্প্লাইস () পদ্ধতিটি একটি অ্যারেতে সরানো আইটেম (গুলি) এবং স্লাইস () পদ্ধতিটি নতুন অ্যারে অবজেক্ট হিসাবে একটি অ্যারেতে নির্বাচিত উপাদান (গুলি) প্রদান করে।

  2. স্প্লাইস () পদ্ধতিটি মূল অ্যারে পরিবর্তন করে এবং স্লাইস () পদ্ধতিটি মূল অ্যারে পরিবর্তন করে না।

  3. স্প্লাইস () পদ্ধতিতে n সংখ্যাটি আর্গুমেন্ট নিতে পারে এবং স্লাইস () পদ্ধতিতে 2 টি আর্গুমেন্ট লাগে।

উদাহরণ সহ স্প্লাইস

তর্ক 1: সূচক, প্রয়োজনীয়। একটি পূর্ণসংখ্যা যা আইটেমগুলি যুক্ত / সরিয়ে ফেলতে হবে তা নির্দিষ্ট করে, অ্যারের শেষ থেকে অবস্থানটি নির্দিষ্ট করতে নেতিবাচক মানগুলি ব্যবহার করুন।

তর্ক 2: .চ্ছিক। সরানো আইটেমের সংখ্যা। যদি 0 (শূন্য) এ সেট করা থাকে তবে কোনও আইটেম সরানো হবে না। এবং যদি পাস না করা হয় তবে প্রদত্ত সূচক থেকে সমস্ত আইটেম সরানো হবে।

তর্ক 3… এন: .চ্ছিক। অ্যারেতে যুক্ত হওয়া নতুন আইটেম (গুলি)।

var array=[1,2,3,4,5];
console.log(array.splice(2));
// shows [3, 4, 5], returned removed item(s) as a new array object.
 
console.log(array);
// shows [1, 2], original array altered.
 
var array2=[6,7,8,9,0];
console.log(array2.splice(2,1));
// shows [8]
 
console.log(array2.splice(2,0));
//shows [] , as no item(s) removed.
 
console.log(array2);
// shows [6,7,9,0]

উদাহরণ সহ স্লাইস

তর্ক 1: প্রয়োজনীয়। একটি পূর্ণসংখ্যা যা নির্বাচনটি কোথায় শুরু করতে হবে তা উল্লেখ করে (প্রথম উপাদানটির একটি সূচক 0 থাকে)। অ্যারের প্রান্ত থেকে নির্বাচন করতে নেতিবাচক সংখ্যাগুলি ব্যবহার করুন।

তর্ক 2: .চ্ছিক। একটি পূর্ণসংখ্যা যা নির্বাচনটি কোথায় শেষ করতে হবে তা নির্দিষ্ট করে কিন্তু এতে অন্তর্ভুক্ত নেই। বাদ দেওয়া থাকলে শুরু অবস্থান থেকে অ্যারের শেষ পর্যন্ত সমস্ত উপাদান নির্বাচন করা হবে। অ্যারের প্রান্ত থেকে নির্বাচন করতে নেতিবাচক সংখ্যাগুলি ব্যবহার করুন।

var array=[1,2,3,4,5]
console.log(array.slice(2));
// shows [3, 4, 5], returned selected element(s).
 
console.log(array.slice(-2));
// shows [4, 5], returned selected element(s).
console.log(array);
// shows [1, 2, 3, 4, 5], original array remains intact.
 
var array2=[6,7,8,9,0];
console.log(array2.slice(2,4));
// shows [8, 9]
 
console.log(array2.slice(-2,4));
// shows [9]
 
console.log(array2.slice(-3,-1));
// shows [8, 9]
 
console.log(array2);
// shows [6, 7, 8, 9, 0]


3
যদিও উভয় ফাংশন সম্পূর্ণ ভিন্ন কার্য সম্পাদন করে splice(x,y), slice(x,y)দ্বিতীয় আর্গুমেন্টের বিপরীতে , yx এর অবস্থান থেকে গণনা করা হয় না, তবে অ্যারের প্রথম উপাদান থেকে।
রমেশ পরিক

আরও একটি জিনিস আমি লক্ষ্য করেছি: এর পরিবর্তে , আপনি যদি array.slice(index, count)ব্যবহার করেন তবে আপনি array.slice((index, count))'স্লাইসিং' এর পরে অবশিষ্ট অংশটি পাবেন। চেষ্টা করে দেখুন!
রমেশ পরিক

23

ফালি () পদ্ধতি একটি নতুন অ্যারে বস্তুর মধ্যে একটি অ্যারের একটি অংশ একটি কপি ফেরৎ।

$scope.participantForms.slice(index, 1);

এটি অ্যারে পরিবর্তন করে না তবে মূল অ্যারেতে participantFormsঅবস্থিত একক উপাদান যুক্ত একটি নতুন indexঅ্যারে প্রদান করে।

সংযুক্ত করান () পদ্ধতি বিদ্যমান উপাদান সরানোর এবং / অথবা নতুন উপাদান যোগ করে একটি অ্যারের বিষয়বস্তু পরিবর্তন।

$scope.participantForms.splice(index, 1);

এটি অবস্থানের participantFormsঅ্যারে থেকে একটি উপাদান সরিয়ে ফেলবে index

এগুলি জাভাস্ক্রিপ্টের নেটিভ ফাংশন, অ্যাংুলারজেএস এর সাথে তাদের কোনও সম্পর্ক নেই।


যে কেউ সহায়ক উদাহরণ দিতে পারে এবং এর জন্য আদর্শ কী? এমন পরিস্থিতিতে যেমন আপনি স্লাইস বা স্লাইস ব্যবহার করতে পছন্দ করেন?
পেট্রোসিম

1
এই উত্তরটি আংশিকভাবে ভুল। জন্য splice2nd ARG আগমন অ্যারের মধ্যে উপাদানের গণনা, কিন্তু জন্য slice2nd ARG রিটার্ন + 1 চূড়ান্ত উপাদান সূচক slice(index,1)অগত্যা এক উপাদান থেকে শুরু একটি অ্যারের ফেরত দেয় না index[1,2,3,4,5].slice(0,1)আয় [1]কিন্তু [1,2,3,4,5].slice(3,1)আয় []কারণ 1হিসেবে ব্যাখ্যা করা হয় final index +1, যাতে final index = 0কিন্তু এই আগে start index = 3তাই খালি অ্যারে ফিরিয়ে দেওয়া হয়।
বাল্টোস্টার

কেন এটি শীর্ষ উত্তর নয়?
জেজে লাবাজো

23

এখানে মধ্যে পার্থক্য মনে রাখতে একটি সহজ কৌতুক sliceবনামsplice

var a=['j','u','r','g','e','n'];

// array.slice(startIndex, endIndex)
a.slice(2,3);
// => ["r"]

//array.splice(startIndex, deleteCount)
a.splice(2,3);
// => ["r","g","e"]

Trick to remember:

"spl" (first 3 letters of splice)"নির্দিষ্ট দৈর্ঘ্যের" জন্য ছোট হিসাবে ভাবেন, দ্বিতীয় তর্কটি দৈর্ঘ্য হওয়া উচিত সূচি নয়


1
আপনি কীভাবে যুক্তি নির্দিষ্ট করেন তা কেবল এটির চেয়ে বেশি। এর মধ্যে একটি (স্প্লাইস) বেস অ্যারে সংশোধন করে এবং অন্যটি তা করে না।
আরবিটার

বিচ্ছিন্ন হিসাবে স্প্লাইস ভাবতে পারে (2 অ্যারে উত্পন্ন করে) + স্লাইস

14

স্প্লাইস - MDN রেফারেন্স - ECMA-262 spec

বাক্য গঠন
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

পরামিতি

  • start: প্রয়োজনীয়। প্রাথমিক সূচক।
    যদি startনেতিবাচক এটা হিসাবে গণ্য করা হয় "Math.max((array.length + start), 0)"শেষ প্রান্ত থেকে প্রতি বৈশিষ্ট (নীচে দেওয়া উদাহরণ) হিসেবে কার্যকরভাবে array
  • deleteCount: .চ্ছিক। সরানোর উপাদানগুলির সংখ্যা ( startসরবরাহ না করা থেকে সমস্ত ) all
  • item1, item2, ...: .চ্ছিক। startসূচি থেকে অ্যারেতে যোগ করার জন্য উপাদানগুলি ।

রিটার্নস : মুছে ফেলা উপাদানগুলির সাথে একটি অ্যারে (কোনওটি সরানো না থাকলে খালি অ্যারে)

মূল অ্যারেটিকে মিউটেট করুন : হ্যাঁ

উদাহরণ:

const array = [1,2,3,4,5];

// Remove first element
console.log('Elements deleted:', array.splice(0, 1), 'mutated array:', array);
// Elements deleted: [ 1 ] mutated array: [ 2, 3, 4, 5 ]

// array = [ 2, 3, 4, 5]
// Remove last element (start -> array.length+start = 3)
console.log('Elements deleted:', array.splice(-1, 1), 'mutated array:', array);
// Elements deleted: [ 5 ] mutated array: [ 2, 3, 4 ]

এমডিএন স্প্লাইস উদাহরণগুলিতে আরও উদাহরণ


স্লাইস - MDN রেফারেন্স - ECMA-262 spec

সিনট্যাক্স
array.slice([begin[, end]])
পরামিতি

  • begin: .চ্ছিক। প্রাথমিক সূচক (ডিফল্ট 0)।
    যদি beginনেতিবাচক এটা হিসাবে গণ্য করা হয় "Math.max((array.length + begin), 0)"শেষ প্রান্ত থেকে প্রতি বৈশিষ্ট (নীচে দেওয়া উদাহরণ) হিসেবে কার্যকরভাবে array
  • end: .চ্ছিক। নিষ্কাশন জন্য সর্বশেষ সূচক কিন্তু অন্তর্ভুক্ত নয় (ডিফল্ট অ্যারে। দৈর্ঘ্য)। যদি endনেতিবাচক এটা হিসাবে গণ্য করা হয় "Math.max((array.length + begin),0)"শেষ প্রান্ত থেকে প্রতি বৈশিষ্ট (নীচে দেওয়া উদাহরণ) হিসেবে কার্যকরভাবে array

রিটার্নস : নিষ্কাশিত উপাদানযুক্ত একটি অ্যারে।

মিউটেট অরিজিনাল : না

উদাহরণ:

const array = [1,2,3,4,5];

// Extract first element
console.log('Elements extracted:', array.slice(0, 1), 'array:', array);
// Elements extracted: [ 1 ] array: [ 1, 2, 3, 4, 5 ]

// Extract last element (start -> array.length+start = 4)
console.log('Elements extracted:', array.slice(-1), 'array:', array);
// Elements extracted: [ 5 ] array: [ 1, 2, 3, 4, 5 ]

এমডিএন স্লাইসের উদাহরণগুলিতে আরও উদাহরণ

পারফরম্যান্স তুলনা

প্রতিটি দৃশ্যের উপর নির্ভর করে একে অন্যের চেয়ে পারফরম্যান্স হিসাবে নিখুঁত সত্য হিসাবে নেবেন না।
কর্মক্ষমতা পরীক্ষা


12

স্প্লাইস এবং স্লাইস অন্তর্নির্মিত জাভাস্ক্রিপ্ট কমান্ডগুলি - বিশেষত AngularJS কমান্ড নয়। স্লাইস "স্টার্ট" থেকে অ্যারে উপাদানগুলি "শেষ" নির্দিষ্টকরণকারীর ঠিক আগে পর্যন্ত প্রদান করে returns স্প্লাইস প্রকৃত অ্যারেটিকে রূপান্তরিত করে এবং "শুরু" থেকে শুরু করে নির্দিষ্ট উপাদানগুলির সংখ্যা রাখে। গুগলের এ সম্পর্কে প্রচুর তথ্য রয়েছে, কেবল অনুসন্ধান করুন।


2
স্প্লাইস নির্দিষ্ট নম্বর মুছে ফেলে এবং তারপরে পরবর্তী কোনও যুক্তি সন্নিবেশ করে।
জোশিয়ার কেলার

স্প্লাইস একটি প্রদত্ত সূচনা সূচক থেকে প্রদত্ত সংখ্যক উপাদানকে মুছে ফেলে যেমন স্প্লাইস (4,1); সূচক 4 থেকে শুরু করে একটি উপাদান মুছে ফেলছে যেখানে বিচ্ছিন্ন (4,3); সূচক 4 এ উপাদানটির সাথে শুরু হওয়া তিনটি উপাদান মুছুন Then তারপরে মুছে ফেলার পরে এটি মুছে ফেলা মানগুলি দেয়।
biancollins081

7

splice()পদ্ধতি একটি অ্যারের মধ্যে সরানো আইটেম ফেরৎ। slice()একটি অ্যারের মধ্যে পদ্ধতি আয় নির্বাচিত উপাদান (গুলি), একটি নতুন অ্যারে অবজেক্ট হিসেবে।

splice()পদ্ধতি মূল অ্যারের পরিবর্তন এবং slice()পদ্ধতি মূল অ্যারের পরিবর্তন করে না।

  • Splice() পদ্ধতিটি এন আর্গুমেন্টের সংখ্যা নিতে পারে:

    তর্ক 1: সূচক, প্রয়োজনীয়।

    তর্ক 2: .চ্ছিক। সরানো আইটেমের সংখ্যা। যদি 0 (শূন্য) এ সেট করা থাকে তবে কোনও আইটেম সরানো হবে না। এবং যদি পাস না করা হয় তবে প্রদত্ত সূচক থেকে সমস্ত আইটেম সরানো হবে।

    তর্ক 3..n: .চ্ছিক । অ্যারেতে যুক্ত হওয়া নতুন আইটেম (গুলি)।

  • slice() পদ্ধতিটি 2 টি যুক্তি নিতে পারে:

    তর্ক 1: প্রয়োজনীয়। একটি পূর্ণসংখ্যা যা নির্বাচনটি কোথায় শুরু করতে হবে তা উল্লেখ করে (প্রথম উপাদানটির একটি সূচক 0 থাকে)। অ্যারের প্রান্ত থেকে নির্বাচন করতে নেতিবাচক সংখ্যাগুলি ব্যবহার করুন।

    তর্ক 2: .চ্ছিক। একটি পূর্ণসংখ্যা যা নির্বাচনটি কোথায় শেষ করতে হবে তা নির্দিষ্ট করে। বাদ দেওয়া থাকলে শুরু অবস্থান থেকে অ্যারের শেষ পর্যন্ত সমস্ত উপাদান নির্বাচন করা হবে। অ্যারের প্রান্ত থেকে নির্বাচন করতে নেতিবাচক সংখ্যাগুলি ব্যবহার করুন।


4

স্প্লাইস এবং সূচি দ্বারা অ্যারে আইটেম মুছুন

সূচক = 2

//splice & will modify the origin array
const arr1 = [1,2,3,4,5];
//slice & won't modify the origin array
const arr2 = [1,2,3,4,5]

console.log("----before-----");
console.log(arr1.splice(2, 1));
console.log(arr2.slice(2, 1));

console.log("----after-----");
console.log(arr1);
console.log(arr2);

let log = console.log;

//splice & will modify the origin array
const arr1 = [1,2,3,4,5];

//slice & won't modify the origin array
const arr2 = [1,2,3,4,5]

log("----before-----");
log(arr1.splice(2, 1));
log(arr2.slice(2, 1));

log("----after-----");
log(arr1);
log(arr2);

এখানে চিত্র বর্ণনা লিখুন



3

স্লাইস মূল অ্যারে পরিবর্তন করে না এটি নতুন অ্যারে ফেরত দেয় তবে স্প্লাইস মূল অ্যারে পরিবর্তন করে।

example: var arr = [1,2,3,4,5,6,7,8];
         arr.slice(1,3); // output [2,3] and original array remain same.
         arr.splice(1,3); // output [2,3,4] and original array changed to [1,5,6,7,8].

বিভাজন পদ্ধতি দ্বিতীয় যুক্তি স্লাইস পদ্ধতি থেকে পৃথক। বিভাজনে দ্বিতীয় যুক্তি অপসারণের জন্য উপাদানগুলির গণনা উপস্থাপন করে এবং স্লাইসে এটি শেষ সূচকে উপস্থাপন করে।

arr.splice(-3,-1); // output [] second argument value should be greater then 
0.
arr.splice(-3,-1); // output [6,7] index in minus represent start from last.

-1 শেষ উপাদানটির প্রতিনিধিত্ব করে তাই এটি -3 থেকে -1 অবধি শুরু হয়। উপরের দিকে স্প্লাইস এবং স্লাইস পদ্ধতির মধ্যে প্রধান পার্থক্য রয়েছে।


2

//splice
var array=[1,2,3,4,5];
console.log(array.splice(2));

//slice
var array2=[1,2,3,4,5]
console.log(array2.slice(2));


console.log("----after-----");
console.log(array);
console.log(array2);


দয়া করে কী চলছে সে সম্পর্কে আরও তথ্য সরবরাহ করুন
এমকেট

2

স্লাইস () এবং স্প্লাইস () জাভাস্ক্রিপ্ট বিল্ট-ইন ফাংশনগুলির মধ্যে পার্থক্যটি হ'ল স্লাইস সরানো আইটেমটি ফেরত দেয় তবে মূল অ্যারে পরিবর্তন করে না; মত,

        // (original Array)
        let array=[1,2,3,4,5] 
        let index= array.indexOf(4)
         // index=3
        let result=array.slice(index)
        // result=4  
        // after slicing=>  array =[1,2,3,4,5]  (same as original array)

তবে স্প্লাইস () ক্ষেত্রে এটি আসল অ্যারেগুলিকে প্রভাবিত করে; মত,

         // (original Array)
        let array=[1,2,3,4,5] 
        let index= array.indexOf(4)
         // index=3
        let result=array.splice(index)
        // result=4  
        // after splicing array =[1,2,3,5]  (splicing affects original array)

0

জাভাস্ক্রিপ্ট অ্যারে স্প্লাইস () উদাহরণ দ্বারা পদ্ধতি

টুটসমেক দ্বারা উদাহরণ 1-সূচক 1 থেকে 2 উপাদান সরান

  var arr = [ "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" ]; 

 arr.splice(1,2);

 console.log( arr ); 

টুটসমেক দ্বারা উদাহরণ -২ - সূচক 0 জাভাস্ক্রিপ্ট থেকে নতুন উপাদান যুক্ত করুন

  var arr = [ "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" ]; 

 arr.splice(0,0,"zero");

 console.log( arr );  

টুটসমেক দ্বারা উদাহরণ -৩ - অ্যারে জাভাস্ক্রিপ্টে উপাদানগুলি যুক্ত করুন এবং সরান

var months = ['Jan', 'March', 'April', 'June'];

months.splice(1, 0, 'Feb'); // add at index 1

console.log(months); 

months.splice(4, 1, 'May'); // replaces 1 element at index 4

console.log(months);

https://www.tutsmake.com/javascript-array-splice-method-by-example/

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.