-
2022-04-14 19:59:23更多相关内容
-
JavaScript数组去重的几种方法
2020-12-11 08:47:43有时候我们做项目的时候往往会需要把数组里面一些重复的项去掉,但是原生JS有排序,有筛选等等,但是就是没有数组去重怎么办呢? 这能怎么办,自己手动实现嘛。 数组不像对象和hash有唯一的标志特征(key)。所以,... -
JavaScript数组前面插入元素的方法
2020-12-12 20:12:29本文实例讲述了JavaScript数组前面插入元素的方法。分享给大家供大家参考。具体如下: JS数组带有一个unshift方法可以再数组前面添加若干个元素,下面是详细的代码演示 代码如下:<!DOCTYPE html> <html> &... -
JavaScript数组操作函数汇总
2020-12-12 01:48:08js中数组操作函数还是非常多的,今天忽然想到来总结一下,也算是温故而知新吧。不过不会针对每个办法都进行一下总结,只是针对一些比较常用的做个备注一下。 这里总结到的 js 数组操作函数有:push,pop,join,... -
JavaScript 数组去重并统计重复元素出现的次数实例
2020-10-18 21:57:36下面小编就为大家分享一篇JavaScript 数组去重并统计重复元素出现的次数实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
js数组依据下标删除元素
2020-12-02 17:46:491、创建数组 代码如下: var array = new Array(); var array = new Array(size);//指定数组的长度 var array = new Array(item1,item2……itemN);//创建数组并赋值 2、取值、赋值 代码如下: var item = array... -
js数组元素组合(递归实现)
2021-01-20 12:31:15有时候我们需要获取数组元素的所有可能组合,可以通过递归实现 //arr表示源数组,size表示选取元素的个数 function combination(arr,size){ //定义数组保存结果 var result = [] //selected数组包含已经选中的... -
js数组操作:三维数组去除空元素.pdf
2021-12-16 22:11:32js数组操作:三维数组去除空元素 -
js数组数据和对象数据做比较,并改变数组的值
2021-10-11 14:53:01js数组数据和对象数据做比较,并改变数组的值 -
javascript 数组的定义和数组的长度
2020-11-24 10:36:36本文提供一款简单的js入门教程,这是一款js数组定义与数组长度实例教程,如果你正在学习js数组的话,我们这里告诉你如何定义数组以及增加数组与数组长度计算实例。 先来看看如何定义数组 var a = new array(); var ... -
js数组转换成tree结构数组
2018-08-22 12:22:05js数组转换成tree结构数组算法 -
js数组方法实现简单商品查询.html
2020-11-04 18:59:27js实现简单商品查询,使用数组方法,按价格区间查询和按商品名查询。通过更新数组,添加节点来显示对应查询到的内容。 -
js代码-js数组查找元素 findIndex() 方法,返回第一个匹配元素下标
2021-07-15 01:08:15js代码-js数组查找元素 findIndex() 方法,返回第一个匹配元素下标 -
js数组拷贝
2022-02-09 16:22:07js数组拷贝数组是引用类型,至于引用数据类型和基础数据类型,可以看下js相关文档。
有些时候我们需要复制一个数组,用来进行某些操作
数组复制分为浅拷贝和深拷贝
浅拷贝:
当修改复制之后的数组,原数组的值也会发生改变
浅拷贝的几种方法
1. 直接赋值
let arr = [1, 2, 3] let arr2 = arr arr2[0] = 0 console.log(`arr: ${arr}`) console.log(`arr2: ${arr2}`)
2. ES6展开操作符, 这种你会发现第一层修改了没受影响,但是第二层的一旦改变,两者都会发生改变, 这也是浅拷贝
const arr1 = [1, 2, 3, {c: 1}] const arr2 = [...arr1] arr1[3].c = 2 console.log(arr1) // [ 1, 2, 3, { c: 2 } ] console.log(arr2) // [ 1, 2, 3, { c: 2 } ]
3. concat, slice, 跟上面的运算符一样
const arr1 = [1, 2, 3, {a: 1}] const arr2 = arr1.concat() const arr3 = arr1.slice(0) arr2[3].a = 3 console.log(arr1) // [ 1, 2, 3, { a: 3 } ] console.log(arr2) // [ 1, 2, 3, { a: 3 } ] console.log(arr3) // [ 1, 2, 3, { a: 3 } ]
4. for循环, 同上
const arr1 = [1, 2, 3, {a: 1}] let arr2 = [] for(let i = 0; i < arr1.length; i++) { arr2.push(arr1[i]) } arr2[3].a = 2 console.log(arr1) // [ 1, 2, 3, { a: 2 } ] console.log(arr2) // [ 1, 2, 3, { a: 2 } ]
此外Object.assign也是浅拷贝
下面来看下深拷贝,在此介绍两种方法
1.JSON.parse(JSON.stringify(arr))
const arr1 = [1, 2, 3, {a: 1}] const arr2 = JSON.parse(JSON.stringify(arr1)) arr2[3].a = 2 console.log(arr1) // [ 1, 2, 3, { a: 1 } ] console.log(arr2) // [ 1, 2, 3, { a: 2 } ]
2. 自己使用递归的方式写,下面是实现的代码,只是数组层面,对象也可以实现,应该是newArr判断下类型,之所以非数组和非对象设置为空,是为了三重运算成功,只考虑这两种类型
const newArr = Object.prototype.toString.call(arr).slice(8, -1) === 'Array' ? [] : Object.prototype.toString.call(arr).slice(8, -1) === 'Object' ? {} : ''
const arr1 = [1, 2, 3, {a: 1}, {a: 2, b: {a: 1, d: [{a: 1, b: 2}]}}] function deepCopy(arr) { const newArr = [] for(let i in arr) { console.log(arr[i]) if (typeof arr[i] === 'object') { newArr[i] = deepCopy(arr[i]) } else { newArr[i] = arr[i] } } console.log(newArr) return newArr } const arr2 = deepCopy(arr1) arr2[4].b.d[0].a = 2 console.log('arr1') console.log(arr1) // [1,2,3,{"a":1},{"a":2,"b":{"a":1,"d":[{"a":1,"b":2}]}}] console.log('arr2') console.log(arr2) // [1,2,3,{"a":1},{"a":2,"b":{"a":1,"d":[{"a":2,"b":2}]}}]
差不多就这些,借鉴了网上的一些方法
-
JS数组的高级使用方法示例小结
2020-10-15 12:46:25主要介绍了JS数组的高级使用方法,结合实例形式总结分析了JavaScript数组的增删改查、排序、随机数等相关操作技巧,需要的朋友可以参考下 -
JavaScript数组filter方法
2022-04-28 20:12:161.数组filter方法作用 筛选数组,将满足条件的元素放入新数组中 2.语法 : array.filter( function ( item, index,arr) {} ) 第一个参数: item,必须,当前元素的值 第二个参数 : index,可选,当前元素在数组中的索引...1.数组filter方法作用
筛选数组,将满足条件的元素放入新数组中
2.语法 : array.filter( function ( item, index,arr) {} )
第一个参数: item,必须,当前元素的值
第二个参数 : index,可选,当前元素在数组中的索引值
第三个参数 : arr,当前元素所处的数组对象
3.filter方法特点
(1)函数执行次数 === 数组长度
(2)函数内部的return
return true : 满足筛选条件,放入新数组中
return false : 不满足条件,不放入新数组中
(3)filter方法的返回值
返回筛选之后的新数组,如果没有符合条件的元素则返回空数组
4.注意点:
(1)filter()方法不会对空数组进行检测
(2)filter()方法不会改变原始数组
5.应用场景 : 筛选数组
示例 :价格筛选
//封装函数渲染页面 const renderData = (arr) => { document.querySelector('.list').innerHTML = arr.map( item => `<div class="item"> <img src="${item.picture}" alt=""> <p class="name">${item.name}</p> <p class="price">${item.price}</p> </div>` ).join('') } renderData(goodsList) //点击事件 const aList = document.querySelectorAll('.filter a') //遍历数组 aList.forEach( ( item,index ) => item.onclick = function () {//注册点击事件 //类名排他 document.querySelector('.active').classList.remove('active') item.classList.add('active') //判断筛选 if (index === 0) {//0-100 renderData(goodsList.filter(item => item.price < 100)) }else if (index === 1) {//100-300 renderData(goodsList.filter(item => item.price >= 100 && item.price < 300)) }else if (index === 2) {//100-300 renderData(goodsList.filter(item => item.price > 300 )) }else { renderData(goodsList) } } )
:
-
Javascript数组splice函数 - js根据key删除数组某个值 - js在数组指定位置插入值
2022-03-28 11:02:06数组.splice( 下标key, 删除个数) 数组直接被修改 <script> let arr = [ 'Peter', 'Kim', 'Lucy', 'Alina', 'John' ]; console.log(JSON.stringify(arr)); // ["Peter","Kim","Lucy","Alina",...完整代码-删除
数组.splice( 下标key, 删除个数 )
数组直接被修改<script> let arr = [ 'Peter', 'Kim', 'Lucy', 'Alina', 'John' ]; console.log(JSON.stringify(arr)); // ["Peter","Kim","Lucy","Alina","John"] arr.splice(2, 1); console.log(JSON.stringify(arr)); // ["Peter","Kim","Alina","John"] </script>
更多函数说明:
完整代码-插入数组
<script> let arr = [ 'Peter', 'Kim', 'Lucy', 'Alina', 'John' ]; console.log(JSON.stringify(arr)); // ["Peter","Kim","Lucy","Alina","John"] arr.splice(3, 0, 'KKK', 'OOO'); console.log(JSON.stringify(arr)); // ["Peter","Kim","Lucy","KKK","OOO","Alina","John"] </script>
封面
-
php数组转换js数组操作及json_encode的用法详解
2020-10-26 19:10:56php数组转换js数组操作及json_encode的用法。需要的朋友可以过来参考下,希望对大家有所帮助 -
js 数组从头添加到数组_如何从头开始实现JavaScript数组方法
2020-08-09 21:33:07js 数组从头添加到数组 介绍 (Introduction) JavaScript includes several functions for working with arrays that go beyond the for loop. You may have used these functions in your own projects and wondered... -
JS中的数组转变成JSON格式字符串的方法
2020-12-12 08:55:11有一个JS数组,如: var arr = [["projectname1","projectnumber1"],["projectname2","projectnumber2"],["projectname3","projectnumber3"]]; 想将此数组转换成JSON字符串,如: var jsonarr = [{"projectname":... -
php中给js数组赋值方法
2020-12-03 05:02:42PHP函数库提供了编/解码JSON的函数:json_encode()和json_decode(),可以比较方便的传递数组或对象给javascript。注意:PHP 5.2以上才绑定了JSON扩展。 在php如下写: 代码如下:$arr = array(‘1’,array(‘2′,’3... -
js数组常用方法
2022-03-27 14:32:57js数组常用方法还挺多的,有17 18个,如果面试官问你这道题可不要只回答几个哟,那是会扣分的! 1. Array.push(),向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变。 2. Array.pop(),删除并... -
JavaScript数组some方法
2022-04-27 11:11:491.数组some方法作用 判断数组中是否有满足条件的元素 2.语法:array.some( function ( item, index, arr) {} ,thisValue) function : 必须,数组中的每个元素都会执行这个函数 第一个参数:item,必须,当前元素的值 ... -
数组乱序 javascript
2019-03-13 10:12:46数组乱序 javascript -
JavaScript数组forEach方法
2022-05-01 21:48:541.forEach数组方法的作用 遍历数组 2.语法:array.forEach( function ( item, index,arr) {} ) 第一个参数: item,必须,当前元素的值 第二个参数 : index,可选,当前元素在数组中的索引值 第三个参数 : arr,当前... -
JavaScript数组包含
2020-06-21 09:04:51Javascript对象确实很棒,但是有时它们缺少一些有用的小功能/方法。 上面的例子是关于数组的。 很高兴知道数组中是否包含某个项目。... 扩展JavaScript数组 /** * Array.prototype.[method name] allows yo... -
JavaScript数组的sort()方法
2022-03-19 08:45:19JavaScript、数组、sort -
JS数组方法push()、pop()用法实例分析
2020-10-15 18:19:07主要介绍了JS数组方法push()、pop()用法,结合实例形式分析了JavaScript数组push()与pop()方法基本功能、原理、使用方法与操作注意事项,需要的朋友可以参考下 -
JavaScript数组应用 可依次读取的公告栏文字
2020-10-29 16:03:16一个JavaScript数组的应用例子,我们将文字存储于数组中,然后用循环依次输出这些文字,像一条一条的公告一样,不过现在都不这么用了,可以学习JS数组,算是一个实例参考。
收藏数
927,680
精华内容
371,072