JavaScript中改进的数组功能

console.log(items3.length);//2
console.log(items3[0]);//2
console.log(items3[1]);//3

//4、传入多个值,数组的元素
let items4 = new Array(2, “3”);
console.log(items4.length);//2
console.log(items4[0]);//2
console.log(items4[1]);//“3”


如果给Array构造函数,


* 传入一个数值型的值,则数组的length属性会被设为该值。
* 传入一个非数值型的值,那这个值会成为目标数据的唯一项。
* 如果传入多个值,无论值类型,都会变为数组的元素。


这个特性容易引发错误,因为你不可能总是注意传入数据的类型。


#### 1.2 Array.of()方法


无论参数是什么类型,Array.of()方法总会创建一个包含所有参数的数组。要用Array.of()方法创建数组,只需传入你希望在数组中包含的值即可。



//1、传入一个数值,认为是length值
let items1 = Array.of(1, 2);
console.log(items1.length);//2
console.log(items1[0]);//1
console.log(items1[1]);//2

//2、传入非数值类型,目标数组唯一项
let items2 = Array.of(2);
console.log(items2.length);//1
console.log(items2[0]);//2

//3、传入多个值,数组的元素
let items3 = Array.of(“2, 3”);
console.log(items3.length);//2
console.log(items3[0]);//“2,3”


#### 1.3 Array.from()方法


##### 1.3.1 非数组对象转为数组对象


1、JavaScript不支持直接将非数组对象转换为真实数组,arguments就是一种类数组对象,如果要把它当作数组使用则必须先转换该对象的类型。例如:



function makeArray(arrayLike) {
var result = [];
for (let i = 0, len = arrayLike.length; i < len; i++) {
result.push(arrayLike[i]);
}
return result;
}
function doSomething(){
var args = makeArray(arguments);
//args是一个数组,可以使用args
}


上述方法,先是手动创建一个result数组,再将arguments对象里的每一个元素复制到新数组中。


2、下面是一种比较简单的方法,调用数组原生的slice()方法可以将非数组对象转换为数组。



function makeArray(arrayLike) {
return Array.prototype.slice.call(arrayLike);
}
function doSomething() {
var args = makeArray(arguments);
//args是一个数组,可以使用args
}
//即
var args = Array.prototype.slice.call(arguments);//args即为数组


3、更直接的方法


ES6新添加了一个语义清晰、语法简洁的新方法Array.from()来将对象转化为数组。Array.from()方法可以接受可迭代对象或类数组对象作为第一个参数,最终返回一个数组。



function doSomething(){
var args = Array.from(arguments);
}


Array.from()方法调用会基于arguments对象中的元素创建一个新数组,args是Array的一个实例,包含arguments对象中同位置的相同值。


##### 1.3.2 映射转换


如果想要进一步转化数组,可以提供一个映射函数作为Array.from()的第二个参数。



function translate() {
return Array.from(arguments, (value) => value + 1);
}

let numbers = translate(1, 2, 3);
console.log(numbers);//2,3,4


##### 1.3.3 用Array.from()转换可迭代对象


Array.from()方法可以处理类数组对象和可迭代对象,也就是说该方法能够将所有含有Symbol.iterator属性的对象转换为数组。例如:



let




## Vue 面试题

1.Vue 双向绑定原理
2.描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?
3.你是如何理解 Vue 的响应式系统的?
4.虚拟 DOM 实现原理
5.既然 Vue 通过数据劫持可以精准探测数据变化,为什么还需要虚拟 DOM 进行 diff 检测差异?
6.Vue 中 key 值的作用?
7.Vue 的生命周期
8.Vue 组件间通信有哪些方式?
9.watch、methods 和 computed 的区别?
10.vue 中怎么重置 data?
11.组件中写 name 选项有什么作用?
12.vue-router 有哪些钩子函数?
13.route 和 router 的区别是什么?
14.说一下 Vue 和 React 的认识,做一个简单的对比
15.Vue 的 nextTick 的原理是什么?
16.Vuex 有哪几种属性?
17.vue 首屏加载优化
18.Vue 3.0 有没有过了解?
19.vue-cli 替我们做了哪些工作?
…
![](https://img-blog.csdnimg.cn/img_convert/50889dbbd16cb5e7307d19c760c66157.webp?x-oss-process=image/format,png)

## 算法

1. 冒泡排序
2. 选择排序
3. 快速排序
4. 二叉树查找: 最大值、最小值、固定值
5. 二叉树遍历
6. 二叉树的最大深度
7. 给予链表中的任一节点,把它删除掉
8. 链表倒叙
9. 如何判断一个单链表有环
10. 给定一个有序数组,找出两个数相加为一个目标数
    ...
    ![](https://img-blog.csdnimg.cn/img_convert/0661f2d73c3c1cd33ad874c087b4c914.webp?x-oss-process=image/format,png)

>由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+评论666

. 给定一个有序数组,找出两个数相加为一个目标数
    ...
    [外链图片转存中...(img-oMhBdMHh-1718555905698)]

>由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+评论666

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值