资讯专栏INFORMATION COLUMN

【JavaScript】JavaScript Array 对象(数组)

GT / 1029人阅读

摘要:返回值返回新创建并被初始化了的数组。当调用构造函数时只传递给它一个数字参数,该构造函数将返回具有指定个数元素为的数组。当把构造函数作为函数调用,不使用运算符时,它的行为与使用运算符调用它时的行为完全一样。返回该对象的源代码。

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 中删除了元素,则返回的是含有被删除的元素的数组。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/97184.html

相关文章

  • Arrayjavascript数据结构描述

    摘要:几乎所有的编程语言都有类似的数据结构。然而的数组却略有不同。没有定义中说的那样的数据结构,作为替代。元素通过指定的分隔符进行分隔。返回该对象的源代码。把数组转换为本地数组,并返回结果。 写在前面的话: 经常看到技术博客上写的内容很详细,对于一个问题,大家的博客内容似乎都是一样的。不难发现这些技术博客已经成为各路教程的汇总地,而教程一般都是参考国外博客翻译或者直接在经典的书籍上大片抄录。...

    iOS122 评论0 收藏0
  • JavaScript数组

    摘要:数组的特别之处在于,当使用小于的非负整数作为属性名时数组会自动维护其属性值。返回的数组包含第一个参数指定的位置和所有到但不含第二个参数指定的位置之间的所有数组元素。数组中只需有一项满足给定条件则返回。 概念 JavaScript数组是JavaScript对象的特殊形式。数组索引实际上和碰巧是整数的属性名差不多,使用方括号访问数组元素就像用方括号访问对象的属性一样。JavaScript将...

    coolpail 评论0 收藏0
  • JavaScript学习总结(二)数组对象部分

    摘要:属性是一个值或一组值以数组或对象的形式,是对象的成员。可以使用内置构造函数和创建包装对象。因此下面的代码将会使人很迷惑结果结果,此数组长度为应该尽量避免使用数组构造函数创建新数组。给数组对象添加返回数组中最大元素值的方法。 对象部分 Object类型 Object 是一个无序的集合,可以存放任意类型对象,所有其他对象都继承自这个对象。创建Object类型有两种,一种是使用new运算符,...

    Lsnsh 评论0 收藏0
  • JavaScript面向对象编程——Array类型

    摘要:中并没有明确的数组数据类型。返回数组对象的原始值。专门用于筛选出数组中符合函数判断条件的元素组成的心数组。专门用于对原数组中每个元素执行相同的函数对象规定的操作。 概述 一维数组 数组是一个有序的数据集合,可以通过数组名称和索引进行访问。JavaScript中并没有明确的数组数据类型。 二维数组 数组是可以嵌套的,这就意味着一个数组可以作为一个袁旭被包含在另一个数组里面。利用JavaS...

    DirtyMind 评论0 收藏0
  • 深入理解JavaScript数组

    摘要:但是,我们可以借用类数组方法不难看出,此时的在调用数组原型方法时,返回值已经转化成数组了。很多时候,深入看看源代码也会让你对这个理解的更透彻。的前端乐园原文链接深入理解类数组 起因 写这篇博客的起因,是我在知乎上回答一个问题时,说自己在学前端时把《JavaScript高级程序设计》看了好几遍。于是在评论区中,出现了如下的对话:showImg(https://segmentfault.c...

    Towers 评论0 收藏0
  • JavaScript标准库系列——Object对象Array对象(一)

    摘要:目录导语对象对象小结导语本系列文章将重点讲解提供的原生库标准库,只要在支持语言的平台,标准库中的提供的对象的属性和方法都能使用对象对象的理解讲的标准库,首先要从对象谈起,因为之后的所有对象都可以看做是对象构造出来的因此,对象可以看做是一个构 目录 导语 1. Object对象 2. Array对象 3. 小结 导语 本系列文章将重点讲解JavaScript提供的原生库——标准库,只要...

    Scholer 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<