面试死在数组,数组真的那么难吗?(Js篇)

前言前几天面试字节,死在数组身上。总结还是刷题太少,对数组的操作不是很熟悉。最近又开始了枯燥的刷题,与此同时又对数组进行了系统性的学习。总结为这篇学习笔记。有想一起刷题的小伙伴可以私聊我,一块进行枯燥的刷题时间。唯有熟能生巧数组文章目录前言数组如何创建一个数组之前版本的缺陷改进类型检测与转换转换成字符串字符串转数组展开运算符Example解构数组添加元素数组出栈、入栈以及填充slice splice数组数据移动清空数组数组拆分与合并数组查找indexOfincludes 原理find & f
摘要由CSDN通过智能技术生成

前言

前几天面试字节,死在数组身上。总结还是刷题太少,对数组的操作不是很熟悉。最近又开始了枯燥的刷题,与此同时又对数组进行了系统性的学习。总结为这篇学习笔记。有想一起刷题的小伙伴可以私聊我,一块进行枯燥的刷题时间。唯有熟能生巧


数组

如何创建一个数组

	// 字面量方式:
    // 这个方法也是我们最常用的,在初始化数组的时候 相当方便
    var a = [3, 11, 8];  // [3,11,8];
    // 构造器:
    // 实际上 new Array === Array,加不加new 一点影响都没有。
    var a = Array(); // [] 
    var a = Array(3); // [,,] 
    var a = Array(3,11,8); // [ 3,11,8 ]

之前版本的缺陷
let arr = new Array(6)
console.log(arr.length)		//6
改进
let arr = Array.of(6)
console.log(arr) 	//6

类型检测与转换

console.log(Array.isArray("das"))	//false
console.log(Array.isArray(12))		//false
console.log(Array.isArray([]))		//true
转换成字符串
let t = [1,2,5,6,7].toString()
console.log(typeof t)		//'string'
let t = String([1,2,3,5])
console.log(typeof t)		//'string'
let t = [1,2,3,5].join("")
console.log(typeof t)		//'string'
字符串转数组
let str = "Jack"
console.log(str.split(""))		//["J","a","c","k"]
let str = "Jack"
//使用 Array.from 必须保证有length属性  
console.log(Array.from(str))		//["J","a","c","k"]

展开运算符

如何连接两个字符串:

let arr1 = ["sda","qwqw"]
let arr2 = ["asdas"]
for(const value of arr2){
   
    arr1.push(value)
}
arr = [...arr1,...arr2]
Example

Sum function:

function sum(...args){
   
    return args.reduce((s,v)=>{
   
        return (s+=v)
    },0)
}

console.log(sum(1,2,3,5,4,6,7,8))		//34
console.log(sum(1,2,3,4))		//10

解构

let arr= [2,3]
let [a,b] = arr;
console.log(a,b)		// 2 3
const [...arr] = "Jack"	
//["J","a","c","k"]

let [,b] = [22,68]
console.log(b)		//68

let [a,...b] = [56,98,2,5,555,232]
console.log(b)		//98,2,5,555,232

let [a,b=2] = [1]
console.log(a)	//1

数组添加元素

let arr1 = ["qwewq","4ew"]
let arr2 = ["3423","ewtwe"]

console.log([...arr1,...arr2])

console.log(arr1.push("eqw",...arr2))
function test(begin,end){
   
    let arr = []
    for(let i=begin;i<=end;i++){
   
		arr.push(i)
    }
    return arr
}

数组出栈、入栈以及填充

let arr =  [1,2,3,5]
arr.pop() //1 2 3
arr.unshift(0,6)  //0 6 1 2 3
arr.shift()		//0
console.log(Array(5).fill(1))		//1 1 1 1 1
console.log([1,2,3,4,5,6].fill("jack",1,3))	//[1, "jack", "jack", 4, 5, 6]
slice splice

splice函数 遇到的坑

2020/6/18
今天在Codewars上刷题时,使用splice方法在for循环上遇到了
题目要求很简单:删除前后一样的元素。
在这里插入图片描述
第一次进行尝试解决:

function uniq (s) {
   
    let str = s[0]
    for (let i = 1; i < s.length; i++) {
   
        s[i] == str ? s.splice(i, 1) : str = s[i]
    }
    return s
}
uniq(
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值