JavaScript Node 学习第一天 数组的操作总结——以及练习 JZ6 从尾到头打印链表

描述
输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。
题目

/*function ListNode(x){
    this.val = x;
    this.next = null;
}*/
function printListFromTailToHead(head)
{
    let res = []
     
    while(head) {
        res.unshift(head.val)
        head = head.next
    } 
    return res
}
module.exports = {
    printListFromTailToHead : printListFromTailToHead
};

JS的数组操作总结:
####创建数组
三种方法:

var myCars=new Array();
myCars[0]="Saab";      
myCars[1]="Volvo";
myCars[2]="BMW";
var myCars=new Array("Saab","Volvo","BMW");
var myCars=["Saab","Volvo","BMW"];

####访问数组

var name=myCars[0];

####数组是对象

var person = ["Bill", "Gates", 62];
var person = {firstName:"Bill", lastName:"Gates", age:19};
console.log(person.firstName)//Bill

####数组length

var arr = [1, 2, 3];
console.log(arr.length)//3
arr.length = 6;
console.log(arr); // [ 1, 2, 3, <3 empty items> ]
arr.length = 2;
console.log(arr); //[ 1, 2 ]

手动改变arr

var arr = [1, 2, 3];
arr[5] = 'x';
arr; // arr变为[1, 2, 3, undefined, undefined, 'x']

####数组indexOf

var arr = [10, 20, '30', 'xyz'];
arr.indexOf(10); // 元素10的索引为0
arr.indexOf(20); // 元素20的索引为1
arr.indexOf(30); // 元素30没有找到,返回-1
arr.indexOf('30'); // 元素'30'的索引为2

寻找元素
####数组slice

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C']
arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G']

如果不给slice()传递任何参数,它就会从头到尾截取所有元素。利用这一点,我们可以很容易地复制一个Array

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
var aCopy = arr.slice();
aCopy; // ['A', 'B', 'C', 'D', 'E', 'F', 'G']
aCopy === arr; // false

####push和pop
push()向Array的末尾添加若干元素,pop()则把Array的最后一个元素删除掉

var arr = [1, 2];
arr.push('A', 'B'); // 返回Array新的长度: 4
arr; // [1, 2, 'A', 'B']
arr.pop(); // pop()返回'B'
arr; // [1, 2, 'A']
arr.pop(); arr.pop(); arr.pop(); // 连续pop 3次
arr; // []
arr.pop(); // 空数组继续pop不会报错,而是返回undefined
arr; // []

####unshift和shift
如果要往Array的头部添加若干元素,使用unshift()方法,shift()方法则把Array的第一个元素删掉:

var arr = [1, 2, 3];
arr.unshift('you are my destiny',2023)
console.log(arr)//[ 'you are my destiny', 2023, 1, 2, 3 ]

####sort

var arr = [1123,-5,3,0.234434,8];
arr.unshift('you are my destiny',2023)
console.log(arr)//[ 'you are my destiny', 2023, 1123, -5, 3, 0.234434, 8 ]
console.log(arr.sort())//[ -5, 0.234434, 1123, 2023, 3, 8, 'you are my destiny' ]

####reverse

var arr = [1123,-5,3,0.234434,8];
console.log(arr.reverse()//[ 8, 0.234434, 3, -5, 1123 ]

####splice
它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素


var arr = ['mom','dad','sister'];
arr.splice(2,2,'grandma')
console.log(arr)//[ 'mom', 'dad', 'grandma' ]
arr.splice(2,2)//从第二个删除两个
console.log(arr)//[ 'mom', 'dad' ]
arr.splice(1,0,'aunt')
console.log(arr)//[ 'mom', 'aunt', 'dad' ]

####concat

var arr = ['A', 'B', 'C'];
var added = arr.concat([1, 2, 3]);
added; // ['A', 'B', 'C', 1, 2, 3]

####join
它把当前Array的每个元素都用指定的字符串连接起来,然后返回连接后的字符串:

var arr = ['mom','dad','sister'];

console.log(arr.join('-love-'))//mom-love-dad-love-sister

var arr = ['mom','dad','sister'];
var st =arr.join('-')
console.log(st)//mom-dad-sister
console.log(arr)//[ 'mom', 'dad', 'sister' ]

join 不会更改array本身的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值