-
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。会改变原数组
- **pop() **方法用于删除并返回数组的最后一个元素。改变原数组
- ** shift()** 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。会改变原数组
-
slice(start,end) 可从已有的数组中返回选定的元素,返回新数组,==不包括end!!!==
-
splice(index,howmany,item1,.....,itemX)/从数组中添加/删除项目,然后返回被删除的项目。改变原数组
- index:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
- howmany:必需。要删除的项目数量。如果设置为 0,则不会删除项目.
- item1, ..., itemX:可选。向数组添加的新项目。
-
Array.prototype.push.apply(a,b), [].push.apply(arr1, arr2) ;//a,b两个数组都变成合并后的数组,返回合并后数组长度。
-
a.concat(b), 合并数组,返回新数组,a.concat()复制自己
-
indexOf 是查某个指定的字符串在字符串首次出现的位置(索引值)
-
lastIndexOf 是从右向左查某个指定的字符串在字符串中最后一次出现的位置
1. 在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组
function prepend(arr, item) {
return [item].concat(arr);
}
function prepend(arr, item) {
var newarr=arr.slice(0);
newarr.unshift(item);//返回数组新长度
return newarr;
}
function prepend(arr, item) {
var newarr=arr.slice(0);
newarr.splice(0,0,item);//返回数组新长度
return newarr;
}
//普通的迭代拷贝
function prepend(arr, item) {
var newArr=[];
for(var i=0;i<arr.length;i++){
newArr.push(arr[i]);
}
newArr.unshift(item);
return newArr;
}
2. 删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组
function curtail(arr) {
return arr.slice(1);
}
function curtail(arr) {
var newarr=arr.slice(0);
newarr.splice(0,1);
return newarr;
}
3. 合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组
function concat(arr1, arr2) {
return arr1.concat(arr2);
}
//利用slice+push.apply
function concat(arr1, arr2) {
var newArr=arr1.slice(0);
[].push.apply(newArr, arr2);
return newArr;
}
4. 在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组
//利用slice+splice
function insert(arr, item, index) {
var newArr=arr.slice(0);
newArr.splice(index,0,item);
return newArr;
}
5.统计数组 arr 中值等于 item 的元素出现的次数
function count(arr, item) {
var mycount=0;
arr.forEach(function(a){
if(a==item){
mycount++;
}
})
return mycount;
}
6.找出数组 arr 中重复出现过的元素
function duplicates(arr) {
var newarr=[];
for(var i=0;i<arr.length;i++){
if(arr.indexOf(arr[i])==i&&arr.lastIndexOf(arr[i])!==i){
newarr.push(arr[i]);
}
}
return newarr;
}
7. 为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组
function square(arr) {
return arr.map(function(item){
return item*item;
})
}
function square(arr) {
//声明一个新的数组存放结果
var a = [];
arr.forEach(function(e){
//将arr中的每一个元素求平方后,加入到a数组中
a.push(e*e);
});
return a;
}
8.在数组 arr 中,查找值与 item 相等的元素出现的所有位置
function findAllOccurrences(arr, target) {
var newarr=[];
arr.forEach(function(item,index){
if(item==target) {
newarr.push(index);
}
});
return newarr;
}
求一个数组中最大的数
function findeMax(arr){
let result=0;
if(Array.isArray(arr)){
for(let i=0;i<arr.length;i++){
result=result>arr[i]?result:arr[i];
}
return result;
}else{
return;
}
}
function findeMax(arr){
let result=0;
if(Array.isArray(arr)){
result=arr.reduce((pre,cur)=>{
return pre>cur?pre:cur;
},0);
}else{
return;
}
}
网友评论