【JavaScript】JavaScript Array 对象(数组)

Array对象

建立 Array 对象的语法

new Array();
new Array(size);
new Array(element0, element1, ..., elementn);

参数

参数 size 是希冀的数组元素个数。返回的数组,length 字段将被设为 size 的值。

参数 element ..., elementn 是参数列表。当运用这些参数来挪用组织函数 Array() 时,新建立的数组的元素就会被初始化为这些值。它的 length 字段也会被设置为参数的个数。

返回值

返回新建立并被初始化了的数组。

假如挪用组织函数 Array() 时没有运用参数,那末返回的数组为空,length 字段为 0。

当挪用组织函数时只通报给它一个数字参数,该组织函数将返回具有指定个数、元素为 undefined 的数组。

当其他参数挪用 Array() 时,该组织函数将用参数指定的值初始化数组。

当把组织函数作为函数挪用,不运用 new 运算符时,它的行动与运用 new 运算符挪用它时的行动完整一样。

Array 对象属性

constructor    返回对建立此对象的数组函数的援用。
length    设置或返回数组中元素的数目。
prototype    使您有才能向对象增加属性和要领。

Array 对象要领

要领                形貌
concat()    衔接两个或更多的数组,并返回效果。
join()    把数组的一切元素放入一个字符串。元素经由过程指定的离开符举行离开。
pop()    删除并返回数组的末了一个元素
push()    向数组的末端增加一个或更多元素,并返回新的长度。
reverse()    倒置数组中元素的递次。
shift()    删除并返回数组的第一个元素
slice()    从某个已有的数组返回选定的元素
sort()    对数组的元素举行排序
splice()    删除元素,并向数组增加新元素。
toSource()    返回该对象的源代码。
toString()    把数组转换为字符串,并返回效果。
toLocaleString()    把数组转换为当地数组,并返回效果。
unshift()    向数组的开首增加一个或更多元素,并返回新的长度。
valueOf()    返回数组对象的原始值

实例

1.用join(” “)格式化输出

运用join格式化输出:每一个元素用空格离开

let b = new Array();
....
//格式化输出
//let str = "";
//for(let i = 0; i < n-1; i++){
    //str+=b[i];
    //str+=" ";
//}
//str+=b[n-1];
//print(str);

//运用join格式化输出

let ans = b.join(" ");
print(ans);    

2.数组轮回右移

数组轮回右移:arr.unshift(arr.pop())

function RoundShift(arr , count) {
    for (var i = 0; i< count; i++) {
        arr.unshift(arr.pop());
        //unshift()    向数组的开首增加一个或更多元素,并返回新的长度
        //pop()    删除并返回数组的末了一个元素
        //shift()    删除并返回数组的第一个元素
        //push()    向数组的末端增加一个或更多元素,并返回新的长度
    }
}
var arr = [1,2,3,4,5,6,7];
RoundShift(arr, 3);
console.log(arr);

字符串轮回右移:str.substring(start, stop)

function shiftLeft(str, n) {
    var len = str.length;
    // 由于是轮回挪动,所以须要处置惩罚挪动位数大于字符串长度的状况
    n = n % len;
    return str.substring(n, len) + str.substring(0, n);
}
var s= shiftLeft('abcdefg', 2);
console.log(s); // "cdefgab"
s = shiftLeft('abcdefg', 10);
console.log(s); // "defgabc"

比较两个字符串是不是为轮回单词:substring(start,stop)

function shiftLeft(str1, str2){
    if(str1.length!=str2.length){return false;}
    for(let i = 0; i < str1.length; i++){
        let s = str1.substring(i) + str1.substring(0,i);
        if(s==str2){
            return true;
        }
    } 
    return false;
}

3.排序sort()

自定义排序比较函数

let lines = readline().split(" ");
let arr = new Array(n);
for(let i = 0; i < lines.length; i++){
    arr[i] = parseInt(lines[i]);
}
arr.sort(cmp);
print(arr);
//比较函数,保证准确排序
function cmp(x,y){
    return x-y;
}

4.slice()和splice()

slice()

定义和用法

slice() 要领可从已有的数组中返回选定的元素。

语法

arrayObject.slice(start,end)

参数 形貌

start    必须。划定从那边最先拔取。假如是负数,那末它划定从数组尾部最先算起的位置。也就是说,-1 指末了一个元素,-2 指倒数第二个元素,以此类推。
end    可选。划定从那边完毕拔取。该参数是数组片段完毕处的数组下标。假如没有指定该参数,那末切分的数组包括从 start 到数组完毕的一切元素。假如这个参数是负数,那末它划定的是从数组尾部最先算起的元素。

返回值

返回一个新的数组,包括从 start 到 end (不包括该元素)的 arrayObject 中的元素。

申明

请注意,该要领并不会修正数组,而是返回一个子数组。假如想删除数组中的一段元素,应当运用要领 Array.splice()。

提醒和解释

解释:您可运用负值从数组的尾部拔取元素。

解释:

假如 end 未被划定,那末 slice() 要领会拔取从 start 到数组末端的一切元素。

splice()

定义和用法

splice() 要领向/从数组中增加/删除项目,然后返回被删除的项目。

解释:该要领会转变原始数组。

语法

arrayObject.splice(index,howmany,item1,.....,itemX)

参数 形貌

index    必须。整数,划定增加/删除项目的位置,运用负数可从数组末端处划定位置。
howmany    必须。要删除的项目数目。假如设置为 0,则不会删除项目。
item1, ..., itemX    可选。向数组增加的新项目。

返回值

范例    形貌
Array    包括被删除项目的新数组,假如有的话。

申明

splice() 要领可删除从 index 处最先的零个或多个元素,而且用参数列表中声明的一个或多    个值来替代那些被删除的元素。

假如从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

    原文作者:afra
    原文地址: https://segmentfault.com/a/1190000016212353
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞