बीच क्या अंतर है spliceऔर slice?
$scope.participantForms.splice(index, 1);
$scope.participantForms.slice(index, 1);
बीच क्या अंतर है spliceऔर slice?
$scope.participantForms.splice(index, 1);
$scope.participantForms.slice(index, 1);
जवाबों:
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);
arr1 = arr0.slice()
spliceजैसे सरकार आपसे कर ले रही है। जबकि sliceज्यादा कॉपी-पेस्ट करने वाला लड़का है।
.splice()है अत्यंत unintuitive, मैं सिर्फ यह पता लगाने की क्यों मूल सरणी के लिए संदर्भ लौट रहे थे कोशिश कर उम्र व्यतीत कर undefinedजब तक मैं इस सूत्र मिल गया।
स्प्लिस और स्लाइस दोनों ही जावास्क्रिप्ट एरियर फंक्शन हैं।
स्लाइस बनाम स्लाइस
ब्याह () विधि एक सरणी और टुकड़ा () विधि में हटाए गए आइटम (एस) को एक सरणी में चयनित तत्व (ओं) को एक नई सरणी वस्तु के रूप में वापस करती है।
ब्याह () पद्धति मूल सरणी को बदल देती है और टुकड़ा () विधि मूल सरणी को नहीं बदलती है।
ब्याह () विधि n तर्क की संख्या ले सकती है और स्लाइस () विधि 2 तर्क लेती है।
उदाहरण के साथ ब्याह
तर्क 1: सूचकांक, आवश्यक। एक पूर्णांक जो वस्तुओं को जोड़ने / हटाने के लिए किस स्थिति में निर्दिष्ट करता है, सरणी के अंत से स्थिति को निर्दिष्ट करने के लिए नकारात्मक मानों का उपयोग करें।
तर्क 2: वैकल्पिक। निकाले जाने वाली वस्तुओं की संख्या। यदि 0 (शून्य) पर सेट किया जाता है, तो कोई आइटम नहीं हटाया जाएगा। और यदि पारित नहीं किया गया है, तो प्रदान किए गए सूचकांक से सभी आइटम हटा दिए जाएंगे।
तर्क 3 ... n: वैकल्पिक। नए आइटम को सरणी में जोड़ा जाना है।
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]
splice(x,y), slice(x,y)दूसरे तर्क yमें एक्स की स्थिति से नहीं, बल्कि सरणी के पहले तत्व से गिना जाता है।
array.slice(index, count)यदि आप उपयोग करते हैं array.slice((index, count)), तो आप 'स्लाइसिंग' के बाद शेष भाग प्राप्त करेंगे। कोशिश करो!
टुकड़ा () विधि एक नई सरणी वस्तु में एक सरणी के एक हिस्से की एक प्रति देता है।
$scope.participantForms.slice(index, 1);
यह सरणी को परिवर्तित नहीं करता है , participantFormsलेकिन indexमूल सरणी में स्थिति पर पाए गए एकल तत्व वाले एक नए सरणी को लौटाता है ।
जोड़ () विधि मौजूदा तत्वों को दूर करने और / या नए तत्व जोड़कर एक सरणी की सामग्री बदल जाता है।
$scope.participantForms.splice(index, 1);
यह स्थिति में participantFormsसरणी से एक तत्व को हटा देगा index।
ये जावास्क्रिप्ट मूल कार्य हैं, AngularJS का उनसे कोई लेना-देना नहीं है।
splice2 आर्ग वापसी सरणी में तत्वों की गिनती है, लेकिन के लिए slice2 आर्ग वापसी + 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कि खाली सरणी वापस आ जाए।
यहाँ 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)"स्पेसिअल लेंथ" के लिए जितना छोटा हो, सोचें कि दूसरा तर्क एक इंडेक्स नहीं होना चाहिए
वाक्य - विन्यास
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
पैरामीटर
start: आवश्यक है। प्रारंभिक सूचकांक। startनकारात्मक है तो इसे "Math.max((array.length + start), 0)"कल्पना के अनुसार माना जाता है (उदाहरण नीचे दिया गया है) प्रभावी रूप से अंत से array।deleteCount: वैकल्पिक। निकाले जाने वाले तत्वों की संख्या ( startयदि उपलब्ध नहीं है तो सभी )।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 ब्याह उदाहरण
सिंटेक्स
array.slice([begin[, end]])
पैरामीटर्स
begin: वैकल्पिक। प्रारंभिक सूचकांक (डिफ़ॉल्ट 0)। beginनकारात्मक है तो इसे "Math.max((array.length + begin), 0)"कल्पना के अनुसार माना जाता है (उदाहरण नीचे दिया गया है) प्रभावी रूप से अंत से array।end: वैकल्पिक। निष्कर्षण के लिए अंतिम सूचकांक, लेकिन इसमें शामिल नहीं (डिफ़ॉल्ट array.length)। यदि 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 ]
एमडीएन स्लाइस में अधिक उदाहरण हैं
इसे पूर्ण सत्य के रूप में न लें क्योंकि प्रत्येक परिदृश्य पर निर्भर करता है कि एक दूसरे से बेहतर हो सकता है।
प्रदर्शन का परीक्षण
स्प्लिस और स्लाइस अंतर्निहित जावास्क्रिप्ट कमांड हैं - विशेष रूप से एंगुलरजेएस कमांड नहीं। स्लाइस सरणी तत्वों को "अंत" से पहले "अंत" तक निर्दिष्ट करता है। ब्याह वास्तविक सरणी को बदल देता है, और "प्रारंभ" पर शुरू होता है और निर्दिष्ट तत्वों की संख्या को रखता है। Google के पास इस पर बहुत सारी जानकारी है, बस खोज करें।
splice()विधि एक सरणी में निकाले गए आइटम देता है। slice()एक सरणी में विधि रिटर्न चयनित तत्व (s), एक नई सरणी वस्तु के रूप में।
splice()विधि मूल सरणी बदलता है और slice()विधि मूल सरणी नहीं बदलता है।
Splice() विधि तर्कों की संख्या ले सकती है:
तर्क 1: सूचकांक, आवश्यक।
तर्क 2: वैकल्पिक। निकाले जाने वाली वस्तुओं की संख्या। यदि 0 (शून्य) पर सेट किया जाता है, तो कोई आइटम नहीं हटाया जाएगा। और यदि पारित नहीं हुआ, तो प्रदान किए गए सूचकांक से सभी आइटम हटा दिए जाएंगे।
तर्क 3..n: वैकल्पिक। नए आइटम को सरणी में जोड़ा जाना है।
slice() विधि 2 तर्क ले सकता है:
तर्क 1: आवश्यक है। एक पूर्णांक जो चयन शुरू करने के लिए निर्दिष्ट करता है (पहले तत्व में 0 का सूचकांक है)। किसी सरणी के अंत से चयन करने के लिए ऋणात्मक संख्याओं का उपयोग करें।
तर्क 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);
एक और उदाहरण:
[2,4,8].splice(1, 2) -> returns [4, 8], original array is [2]
[2,4,8].slice(1, 2) -> returns 4, original array is [2,4,8]
स्लाइस मूल सरणी को परिवर्तित नहीं करता है यह नई सरणी लौटाता है लेकिन ब्याह मूल सरणी को बदल देता है।
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 तक शुरू होता है। ऊपर ब्याह और टुकड़ा विधि के बीच प्रमुख अंतर हैं।
//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);
स्लाइस () और स्पाइस () जावास्क्रिप्ट बिल्ड-इन फ़ंक्शन के बीच का अंतर है, स्लाइस ने हटाए गए आइटम को हटा दिया लेकिन मूल सरणी को नहीं बदला; पसंद,
// (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)
उदाहरण के लिए जावास्क्रिप्ट ऐरे ब्याह () विधि
उदाहरण 1 tutsmake द्वारा -Remove 2 तत्वों को 1 इंडेक्स से
var arr = [ "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" ];
arr.splice(1,2);
console.log( arr );
उदाहरण -2 tutsmake द्वारा - इंडेक्स 0 जावास्क्रिप्ट से नया तत्व जोड़ें
var arr = [ "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" ];
arr.splice(0,0,"zero");
console.log( arr );
उदाहरण -3 tutsmake द्वारा - ऐरे जावास्क्रिप्ट में एलिमेंट्स जोड़ें और निकालें
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/