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]);