I have the following array setup, i,e:
var myArray = new Array();
Using this array, I am creating a breadcrumb menu dynamically as the user add
I like this implementation of Array.remove, it basically abstracts the use of the splice function:
// Array Remove - By John Resig (MIT Licensed)
Array.prototype.remove = function(from, to) {
var rest = this.slice((to || from) + 1 || this.length);
this.length = from < 0 ? this.length + from : from;
return this.push.apply(this, rest);
};
Usage:
// Remove the second item from the array
array.remove(1);
// Remove the second-to-last item from the array
array.remove(-2);
// Remove the second and third items from the array
array.remove(1,2);
// Remove the last and second-to-last items from the array
array.remove(-2,-1);
You do not need to write a function, you can use indexOf() and splice() these two functions.
You can remove any positional element a element. For example: var name = ['james' , 'tommy' , 'Jimmy' , 'Holon']; var name = name.splice(name.indexOf('Jimmy') , 1);
You could use myArray.push('MenuA');
so you don't specify direct numbers when adding elements.
To remove an element I.E. 'MenuB':
// another quick way to define an array
myArray = ['MenuA', 'MenuB', 'MenuC', 'MenuD', 'MenuE'];
// remove an item by value:
myArray.splice(myArray.indexOf('MenuB'),1);
// push a new one on
myArray.push('MenuZ');
// myArray === ["MenuA", "MenuC", "MenuD", "MenuE", "MenuZ"]
http://www.w3schools.com/jsref/jsref_splice.asp
Splice should recalculate the correct indexes for future access.
Remove array element by position/element(Actual array modifies)
1 - arr.splice(1, 1) -----> (index, no of elements)
2 - arr.splice(arr.indexOf(5), 1) -----> (array.indexOf(InputValue), no of elements)
let arr = [1,2,3,4,5];
console.log(arr.splice(1,1)); // [2]
console.log(arr.splice(arr.indexOf(5), 1)); // [5]
console.log(arr); // [1, 3, 4]
Remove array element by position/element(creates copy array)
let arr2 = [10, 20, 30, 40]
let result = arr2.filter(a=> a!==20);
let result2 = arr2.filter(a=> a!==arr2[arr2.indexOf(30)])
console.log(result) // [10, 30, 40]
console.log(result2) // [10, 20, 40]