Js 数组的各种方法及操作
一、数组去重
var arr = [0,1,20,3,0,45,6,0];
Array.prototype.unrepeat = function(){
var array = [];
for(var i = 0;i<this.length;i++){
if(array.indexOf(this[i]) === -1){
array.push(this[i]);
}
}
return array;
}
console.log(arr.unrepeat());
二、数组排序
var arr = [1,5,9,4,8,7]
arr = arr.sort(function(a,b){return a-b}) // 升序
console.log(arr);
三、数组对象的排序
var arr = [{id:1},{id:7},{id:5},{id:9},{id:20},{id:3}]
arr = arr.sort(function(a,b){return a.id - b.id})
console.log(arr)
四、字符串转换数组的小方法
1)eval():
var arr = "[1,2,3,4,5]";
console.log(eval(arr)) // 性能较差
2)JSON.parse();
var arr = "[1,2,3,4,5]";
console.log(JSON.parse(arr))
3)es6的Array.of()
console.log(Array.of(1,2,3,4,8))
console.log(Array.of("a","b","c","d"))
4)非字符串数组格式的字符串转化成数组
var arr = "1,2,3,4,5";
arr = "["+arr+"]"
console.log(JSON.parse(arr),eval(arr));
五、数组转化成字符串
1)toString()
var arr = ["Creek","Sinoshy","Stream"]
console.log(arr.toString()) // 以“,”作为分隔符
2)join()
var arr = ["Creek","Sinoshy","Stream"]
console.log(arr.join()) // 默认以逗号分隔,如果给参数,那么会根据给的参数进行分隔
六、删除两个数组中相同的元素
let arr1 = [1,5,7];
let arr2 = [1,2,3,4,5,6,7]
for(let i = 0;i < arr1.length;i ++){
for(let x = 0;x < arr2.length;x ++){
if(arr1[i] === arr2[x]){
arr2.splice(x,1)
}
}
}
console.log(arr2)
Js 数组的各种方法及操作的更多相关文章
- 关于JS数组的栈和队列操作
1.js支持重载吗? 虽然js 本身并没有函数重载,但是可以用arguments来模拟重载,函数名相同,参数不同,arguments的length属性,获取参数个数,索引属性获取参数值 2.什么是作用 ...
- JS —— 数组与字符串方法
数组 1. 基本方法 1)Array.prototype.unshift(item1,item2,item3...) 描述: 在数组的前面添加元素,一次可以传入多个参数. 注意:元素会根据当前传入的 ...
- js数组去重的方法(转)
JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...
- js数组高阶方法reduce经典用法代码分享
以下是个人在工作中收藏总结的一些关于javascript数组方法reduce的相关代码片段,后续遇到其他使用这个函数的场景,将会陆续添加,这里作为备忘. javascript数组那么多方法,为什么我要 ...
- JS 数组常用的方法
数组常用的方法: x.toString()方法:任何对象都有toString方法. 将任何对象转为字符串. 一般不主动调用,系统在需要时自动调用 x.valueOf()方法:同toStr ...
- js数组的forEach方法能不能修改数组的值
如果要使用数组的forEach()方法对其改值时,需要直接通过arr[i]这种方式来更改. 请看下面代码: // 数组改值 let arr = [1,3,5,7,9]; arr.forEach(fun ...
- js数组之迭代方法
ES5为数组对象定义了5个迭代方法(即递归,简单的说就是自己可以调用自己). 每个方法接收两个参数:要在每一项上运行的函数(接收3个参数:数组项的值,该项在数组中的位置,数组对象本身)和(可选的) ...
- js 数组中的方法
<!DOCTYPE html><html><head> <title>数组的方法</title> <meta charset=&quo ...
- js数组的splice方法
w3school文章链接:http://www.w3school.com.cn/jsref/jsref_splice.asp splice:拼接,结合. splice()方法向数组添加/删除元素,返回 ...
随机推荐
- 1.Struts2快速入门
Struts2是一个基于MVC设计模式的Web层框架 Web层框架的特点:前端控制器模式 快速入门 1.下载Struts2的框架包 https://struts.apache.org/ 2.导入jar ...
- jq-demo-拖拽
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 自定义Java annotation
1.目录结构: 2.pom文件: Simple exmple: package com.yuan.simple; import java.lang.annotation.Retention; impo ...
- 关于第一次web前端面试的记录
最近参加了一场面试,感觉自己题目都懂,但是说起来就是有点说不明白,所以写个博客整理以下吧.答案不少不是面试时回答的答案,只是整理一下可行答案 1. 如图1,使B相对于A垂直居中 图1 <styl ...
- NX二次开发-获取当前part所在路径UF_PART_ask_part_name
#include <uf.h> #include <uf_ui.h> #include <uf_part.h> #include <atlstr.h> ...
- Android 配置正式签名和debug签名
为了测试微信分享,微信分享必须有签名信息才能成功调用微信,所以需要debug 下设置签名,方便调试build.gradle里,配置2个签名: signingConfigs { release { ke ...
- 如何将Canvas中内容保存为图片
Bitmap bm = Bitmap.createBitmap(320, 480, Config.ARGB_8888); Canvas canvas = new Canvas(bm); Paint p ...
- I/O与NIO(异步I/O)
1.原来的I/O库与NIO最重要的区别是数据打包和传输方式的不同,原来的I/O以流的方式处理数据,而NIO以块的方式处理数据. 面向流的I/O系统一次一个字节地处理数据.一个输入流产生一个字节的数据, ...
- MySQL数据库迁移详细步骤
转载自:http://sofar.blog.51cto.com/353572/1598364 ===================================================== ...
- Cesium资料大全
前言 Cesium是一个用于显示三维地球和地图的开源js库.它可以用来显示海量三维模型数据.影像数据.地形高程数据.矢量数据等等.三维模型格式支持gltf.三维瓦片模型格式支持3d tiles.矢量数 ...