javascript数组方法练习

  1. 查找元素的位置:已知一个数组当中有一个item 元素,请找出元素在数组当中的位置并输出位置;如果没有则返回-1;
function indexOf(arr,item){
	for(let i=0;i<arr.length;i++){
	if(arr[i]==item){
	return i;
}
}
return -1
}

2.移除数组当中所有值与item相等的元素,直接在数组arr上操作,并将结果返回

function removeWithoutCopy(arr,item){
	for(let i = 0;i<arr.length;i++){
				if(arr[i] == item){
						arr.splice(i,1);
		}
	}
				return arr;
}

3.在数组arr的末尾添加元素item,不要直接修改原数组,返回新数组。

function append(arr,item){
	let newArr = [];
	for(let i in arr){
		newArr[i] = item[i];
	}
	newArr.push(item);
	return newArr;
}

4.删除数组arr当中的最后一个元素,要求不修改原数组,结果返回新的数组。

function truncate(arr) {
    let newArr =[];
    for(let i in arr){
        newArr[i] = arr[i];
    }
    newArr.pop();
    return newArr;
}

5.在数组arr的开头添加元素item,要求不改变原数组,并返回新数组。

//方法一
function truncate(arr,item) {
    let newArr =[];
    for(let i in arr){
        newArr[i] = arr[i];
    }
    newArr.unshift(item);
    return newArr;
}
//方法二
function prepend(arr, item) {
    let newArr = [];
    for(let i= 0;i<arr.length;i++){
        newArr.push(arr[i]);
    }
    newArr.unshift(item);
    return newArr;
}

6.删除数组arr的第一个元素,要求不修改原数组,返回新的数组。

function curtail(arr) {
    let newArr = [];
    for(let i in arr){
        newArr[i] = arr[i];
    }
    newArr.shift();
    return newArr;
}

7.合并数组arr1和arr2,要求不修改原数组,并返回合并后的新数组。

function concat(arr1, arr2) {
    let newArr1 = [];
    let newArr2 = [];
    for(let i in arr1){
        newArr1[i] = arr1[i];
    };
    for(let i in arr2){
        newArr2[i] = arr2[i];
    };
    let newArr = newArr1.concat(newArr2);
    return newArr;
}

8.在数组的index处添加元素item,要求不修改原数组,返回新数组;

//方法一
function insert(arr, item, index) {
    let newArr= [];
    for(let i in arr){
        newArr[i] = arr[i];
    }
    newArr.splice(index,0,item)
    return newArr;
}
//方法二
function insert(arr, item, index) {
    let newArr= [];
    for(let i in arr){
        newArr[i] = arr[i];
    }
    newArr.splice(index,0,item)
    return newArr;
}

9.统计数组当中值等于item的元素出现的次数

//方法一
function count(arr, item) {
    let count =0;
    for(let i in arr){
        if(arr[i] == item){
            count++;
        }
    }
    return count;
}
//方法二
function count(arr, item) {
    let count = 0;
    arr.forEach(function(value){
        if(value == item){
            count++;
        }
    })
    return count;
}

10.找出数组当中重复出现过的元素

方法一:
function duplicates(arr){
	let newArr = [];
	for(let i =0;i<arr.length;i++){
		for(let j = i+1;j<arr.length;j++){
			if(arr[i]==arr[j]&&newArr.indexOf(i)== -1){
					newArr[i]=arr[i];
			}
		}
	}
	return newArr;
}
11.为数组当中的每一个元素求二次方,要求不修改元素组,返回一个新数组。
function square(arr) {
    let newArr = [];
    for(let i in arr){
        newArr[i]=arr[i]*arr[i];
    }
    return newArr;
}

12.在数组arr当中,查找值与item相等的元素出现的所有位置。

function findAllOccurrences(arr, target) {
    let index = [];
    for(let i =0;i<arr.length;i++){
        if(arr[i]==target){
            index.push(i);
        }
    }
    return index;
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值