建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

web开发之-js数组常用方法(1)(JavaScript开发中常用的方法集介绍)

GG网络技术分享 2025-03-18 16:14 0


web开发之-js数组常用方法(1)

数组的访问,更改和遍历

使用我们上一节课的index.js

var arr = [1,2,3,4,5,6,7];

//获取数组长度

console.log(arr.length);

//访问第二个元素

console.log(arr[1]);

//更改第二个元素

arr[1] = 333;

console.log(arr);

//遍历数组

for(var i=0;i<arr.length;i++)

{

console.log("我是第"+i+"个元素:"+arr[i]);

}

arr.forEach((item,index,array)=>{

console.log("数组的第"+index+"个值为"+item);

})

注:

数组长度:数组变量名.length

访问第i个元素:数组变量名[i]

遍历元素:for,数组变量名.forEach,其中,forEach需要传递一个函数,item表示数组的值,index表示数组的索引,array表示的是数组

concat合并数组

我们使用concat可以合并多个数组,使用方法为:数组1.concat(数组2,数组3)

var arr = [1,2,3,4,5,6,7];

var arr1 = [8,9];

var result = arr.concat(arr1);

concat实现拷贝的两种方式:

浅拷贝:

var arr = [22,33,{name:"zsf"}];

var arr1=arr.concat(); // 浅拷贝

arr1[2].name="lisi";;

console.log(arr);

console.log(arr1);

注:我们使用concat实现了数组的拷贝(复制),但是,当我更改新的拷贝数组的name值的时候,同时也更改了原始数组arr的name的值;这是因为,arr[2]是复杂类型,不是基本的类型,对于复杂类型只是拷贝了复杂类型的索引值;

深拷贝:

var arr = [22,33,{name:"zsf"}];

var arr2 = JSON.parse(JSON.stringify(arr));

arr2[2].name="wangwu";

console.log(arr);

console.log(arr2);

注:这里我们使用提供的JSON方法来实现深拷贝;JSON.stringfy把数组转换成json的字符串,JSON.parse又把json字符串转换成数组;当我们更改深拷贝的数组的复杂类型的值时,并不会更改原始的复杂类型的值;

拓展:json是我们开发中常用到的格式,可以使用类似对象的访问方式来进行访问,例如以上的arr2[2].name。

JavaScript开发中常用的方法集介绍

JavaScript开发中常用的方法集有哪些,下面让小编给大家介绍下吧!

日期格式化

// 格式化日期类型,fmt格式可选择

function dateFormat(fmt, date) {

let ret;

let opt = {

\"Y+\": date.getFullYear().toString(), // 年

\"M+\": (date.getMonth() + 1).toString(), // 月

\"D+\": date.getDate().toString(), // 日

\"h+\": date.getHours().toString(), // 时

\"m+\": date.getMinutes().toString(), // 分

\"s+\": date.getSeconds().toString(), // 秒

\"ms+\": date.getMilliseconds().toString() // 毫秒

};

for (let k in opt) {

ret = new RegExp(\"(\" + k + \")\").exec(fmt);

if (ret) {

fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, \"0\"));

}

}

return fmt;

}

let date = new Date();

let fDate = dateFormat(\"YYYY-MM-DD hh:mm:ss.ms\", new Date(date));

计算时分秒差值

// 计算时分秒差值

function timeDiffer(beginTime, endTime) {

let ret = {};

let date = new Date();

let sTime = Date.parse(dateFormat(\"YYYY/MM/DD\", date) + \" \" + beginTime);

if (beginTime >= endTime) {

date.setDate(date.getDate() + 1);

}

let eTime = Date.parse(dateFormat(\"YYYY/MM/DD\", date) + \" \" + endTime);

let differ = eTime - sTime;

let hour = Math.floor(differ / 1000 / 60 / 60);

let minute = Math.floor(differ / 1000 / 60 - hour * 60);

let second = Math.floor(differ / 1000 - hour * 60 * 60);

ret = {

differHour: hour,

differMinute: minute,

differSecond: second

};

return ret;

}

let { differHour, differMinute, differSecond } = timeDiffer(beginTime, endTime);

深拷贝

// 深拷贝,即复制并独立一份数据,操作不影响原数据

function deepCopy(obj) {

if (typeof obj !== \"object\") {

return obj;

}

let result = Array.isArray(obj) ? [] : {};

for (let i in obj) {

if (obj.hasOwnProperty(i)) {

if (typeof obj[i] === \"object\" && obj[i] !== null) {

result[i] = deepCopy(obj[i]);

} else {

result[i] = obj[i];

}

}

}

return result;

}

数组去重

// ES6最简方法

let result = [];

if (Array.isArray(arr)) {

result = new Set(arr);

}

// 数组去重

function unique(arr) {

if (!Array.isArray(arr)) {

return;

}

let result = [];

for (let i = 0; i < arr.length; i++) {

if (result.indexOf(arr[i]) === -1) {

result.push(arr[i]);

}

}

return result;

}

数组对象排序

// 数组对象排序,比较两个字符串

list.sort((a, b) => {

return a.id.localeCompare(b.id);

});

以上就是JavaScript开发中常用的方法集的详细内容,更多请关注网站的其它相关文章!

JavaScript开发中常用的方法集介绍 (https://www.wpmee.com/) javascript教程 第1张

标签:

提交需求或反馈

Demand feedback