1,移除数组 arr 中的所有值与 item 相等的元素。
示例1 :
输入:[1, 2, 2, 3, 4, 2, 2], 2
输出:[1, 3, 4]
- 1,不要直接修改数组 arr,结果返回新的数组
实现如下:
function remove(arr, item) {
var newArr = new Array();
for(var i=0; i<arr.length; i++){
if(arr[i] !== item){
newArr.push(arr[i]);
}
}
return newArr;
}
console.log(remove([1, 2, 3, 4, 2], 2));
- 2,直接在给定的 arr 数组上进行操作,并将结果返回
实现如下:
function removeWithoutCopy(arr, item) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] === item) {
arr.splice(i, 1);
i--;
}
}
return arr;
}
console.log(removeWithoutCopy([1, 2, 2, 3, 4, 2, 2], 2));
或者:
function removeWithoutCopy(arr, item) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] === item) {
arr.splice(i, 1);
i = 0;
}
}
return arr;
}
console.log(removeWithoutCopy([1, 2, 2, 3, 4, 2, 2], 2));
2,在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组
输入:
[1, 2, 3, 4], ‘z’, 2
输出:
[1, 2, ‘z’, 3, 4]
实现如下:
function insert(arr, item, index) {
var newArr = [].concat(arr);
newArr.splice(index, 0, item);
return newArr;
}
console.log(insert([1, 2, 3, 4], 'z', 2));
3,实现将一个数组的内容赋值给另一个数组
法一:
var arr = [1, 2, 3, 4];
var newArr = [].concat(arr);
法二:
var arr = [1, 2, 3, 4];
var newArr = arr.slice(0);
4,找出数组 arr 中重复出现过的元素
法一:
function duplicates(arr) {
var a=[]
for(var i=0;i<arr.length-1;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]==arr[j]&&a.indexOf(i)==-1){
a.push(arr[i]);
}
}
}
return a;
}
duplicates([1, 2, 4, 4, 3, 3, 1, 5, 3]).sort()
法二:
function duplicates(arr) {
var temp = arr[0];
var arrB = [];
arrB.push(temp);
var arrC = [];
for (var i = 1; i < arr.length; i++) {
if (arrB.indexOf(arr[i], 0) !== -1) {
if (arrC.indexOf(arr[i], 0) == -1)
arrC.push(arr[i]);
}
arrB.push(arr[i]);
}
return arrC;
}
duplicates([1, 2, 4, 4, 3, 3, 1, 5, 3]);