join()
方法将数组作为字符串返回。
元素将由指定的分隔符分隔。默认分隔符是逗号 (,)。
注释:join()
方法不会改变原始数组。
参数 | 描述 |
---|---|
separator | 可选。要使用的分隔符。如果省略,元素用逗号分隔。 |
var arr = [12, 15, 25, 36, 88]
var arr1 = [16]
var arr2=[]
Array.prototype.newJoin = function (str) {
var string = '';
if (this.length == 1) {
return string + this[this.length - 1]
} else {
string += this[0]
for (var i = 1; i < this.length; i++) {
if (str) {
string += (str + this[i])
}
else {
string += (',' + this[i])
}
}
return string
}
}
var str = arr.newJoin(' * ');
console.log(str);
console.log(arr1.newJoin());
console.log(arr2.newJoin());
find()
方法返回数组中第一个通过测试的元素的值(作为函数提供)。
find()
方法对数组中存在的每个元素执行一次函数:
注释:find()
不对空数组执行该函数。
注释:find()
不会改变原始数组。
参数 | 描述 | ||||||||
---|---|---|---|---|---|---|---|---|---|
function(currentValue, index, arr) | 必需。为数组中的每个元素运行的函数。 函数参数:
|
||||||||
thisValue | 可选。要传递给函数以用作其 "this" 值的值。 如果此参数为空,则值 "undefined" 将作为其 "this" 值传递。 |
var arr=[10,52,65,2,44]
var arr1=[99,88,89,96,91]
Array.prototype.newFind = function (fun) { //重写newfind方法
for (var i = 0; i < this.length; i++) { //循环遍历整个数组
if (fun(this[i])) { //判断满足fun条件的第一个数的索引
return this[i];
}
}
return undefined;
}
function test(val) { //测试函数 求满足值小于50的
return val < 50;
}
console.log(arr.newFind(test));
console.log(arr1.newFind(test));
push()
方法向数组末尾添加新项目,并返回新长度。
提示:新的项目将被添加到数组的末尾。
注释:push()
方法会改变数组的长度。
提示:如需在数组的开头添加项目,请使用 unshift()
方法。
参数 | 描述 |
---|---|
item1, item2, ..., itemX | 必需。要添加到数组中的项目。 |
var arr = [12, 15, 25, 36, 88]
Array.prototype.newPush = function () {
console.log(arguments.length);
//为了防止循环时候值发生变化,先用变量存起来
var arrlen=this.length;
var arglen=arguments.length;
for (var i = 0; i < arglen; i++) {
this[arrlen+i] = arguments[i];
}
}
// arr.newPush()
// console.log(arr);
arr.newPush(96,18,8)
console.log(arr);
pop()
方法移除数组的最后一个元素,并返回该元素。
注释:pop()
方法会改变数组的长度。
提示:如需删除数组的第一个元素,请使用 shift()
方法。
无参数。
var arr=[12,15,25,36,88]
Array.prototype.newPop=function(){
var remove=this[this.length-1];
this.length--;
return remove;
}
let remove=arr.newPop();
console.log(remove);
console.log(arr);
every()
方法检查数组中的所有元素是否都通过了测试(被作为函数提供)。
every()
方法对数组中存在的每个元素执行一次函数:
注释:every()
不对没有值的数组元素执行函数。
注释:every()
不改变原始数组。
参数 | 描述 | ||||||||
---|---|---|---|---|---|---|---|---|---|
function(currentValue, index, arr) | 必需。为数组中的每个元素运行的函数。 函数参数:
|
||||||||
thisValue | 可选。要传递给函数以用作其 "this" 值的值。 如果此参数为空,则值 "undefined" 将作为其 "this" 值传递。 |
var arr=[10,52,65,2,44]
var arr1=[99,88,89,96,91]
Array.prototype.newEvery=function(fun){
for(var i=0;i50;
}
console.log(arr.newEvery(test));
console.log(arr1.newEvery(test));
some()
方法检查数组中的任何元素是否通过测试(作为函数提供)。
some()
方法对数组中存在的每个元素执行一次函数:
注释:some()
对没有值的数组元素不执行函数。
注释:some()
不改变原始数组。
参数 | 描述 | ||||||||
---|---|---|---|---|---|---|---|---|---|
function(currentValue, index, arr) | 必需。为数组中的每个元素运行的函数。 函数参数:
|
||||||||
thisValue | 可选。要传递给函数以用作其 "this" 值的值。 如果此参数为空,则值 "undefined" 将作为其 "this" 值传递。 |
var arr=[10,52,65,2,44]
var arr1=[99,88,89,96,91]
Array.prototype.newSome=function(fun){
for(var i=0;i
shift()
方法移除数组的第一项。
注释:shift()
方法会改变数组的长度。
注释:shift
方法的返回值是被移除的项目。
注释:shift()
方法会改变原始数组。
提示:如需删除数组的最后一项,请使用 pop()
方法。
无参数。
var arr=[10,52,65,2,44]
var arr1=[99,88,89,96,91]
Array.prototype.newShift=function(){
var remove=this[0];
for(var i=0;i
slice()
方法以新的数组对象,返回数组中被选中的元素。
slice()
方法选择从给定的 start 参数开始的元素,并在给定的 end 参数处结束,但不包括。
注释:slice()
方法不会改变原始数组。
参数 | 描述 |
---|---|
start | 可选。整数,指定从哪里开始选择(第一个元素的索引为 0)。 使用负数从数组的末尾进行选择。如果省略,则类似于 "0"。 |
end | 可选。整数,指定结束选择的位置。 如果省略,将选择从开始位置到数组末尾的所有元素。使用负数从数组末尾进行选择。 |
var arr=[12,15,16,18]
var arr1=[14,15,16,17,18,19]
Array.prototype.newSlice=function(startIndex,endIndex){
let start=0;
let end=this.length;
//开始索引,负数从后数
if(startIndex){
if(startIndex<0){
start=this.length+startIndex;
}else{
start=startIndex;
}
}
//结束索引,负数从后数
if(endIndex){
if(endIndex<0){
end=this.length+endIndex;
}else{
end=endIndex;
}
}
var newarr=[];
for(var i=start,j=0;i
reverse()
方法反转数组中元素的顺序。
注释:reverse()
方法将改变原始数组。
无参数。
Array.prototype.newReverse = function () {
var newarr=[]; //新开辟一个地址存放临时数组
for(var i=0;i=0; i--,j++) {
this[i] = newarr[j] //让传过来的数组的最后一位等于临时数组的第一位
}
}
var arr = [12, 34, 56, 78, 90];
arr.newReverse();
console.log(arr);
findIndex()
方法返回数组中通过测试的第一个元素的索引(作为函数提供)。
findIndex()
方法对数组中存在的每个元素执行一次函数:
注释:findIndex()
不会为没有值的数组元素执行函数。
注释:findIndex()
不会改变原始数组。
参数 | 描述 | ||||||||
---|---|---|---|---|---|---|---|---|---|
function(currentValue, index, arr) | 必需。为数组中的每个元素运行的函数。 函数参数:
|
||||||||
thisValue | 可选。要传递给函数以用作其 "this" 值的值。 如果此参数为空,则值 "undefined" 将作为其 "this" 值传递。 |
var arr = [52, 52, 65, 2, 44]
var arr1 = [99, 88, 89, 96, 91]
Array.prototype.newFind = function (fun) { //重写newfind方法
for (var i = 0; i < this.length; i++) { //循环遍历整个数组
if (fun(this[i])) { //判断满足fun条件的第一个数的索引
return i;
}
}
return -1;
}
function test(val) { //测试函数 求满足值小于50的
return val < 50;
}
console.log(arr.newFind(test));
console.log(arr1.newFind(test));