Products
GG网络技术分享 2025-03-18 16:14 0
使用我们上一节课的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可以合并多个数组,使用方法为:数组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开发中常用的方法集有哪些,下面让小编给大家介绍下吧!
日期格式化
// 格式化日期类型,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开发中常用的方法集的详细内容,更多请关注网站的其它相关文章!
Demand feedback