判断数组重复元素以及重复的个数以及重复数第一次出现的下标
var _arr = [ '保山市', '保山市', '保山市', '保山市', '保山市', '保山市', '楚雄州', '楚雄州', '楚雄州', '楚雄州', '楚雄州', '楚雄州', '大理州', '大理州', '大理州', '大理州', '德宏州', '德宏州', '德宏州', '德宏州', '红河州', '红河州', '红河州', '红河州', '红河州', '昆明市', '昆明市', '昆明市', '丽江市', '丽江市', '临沧市', '临沧市', '普洱市', '普洱市', '普洱市', '普洱市', '曲靖市', '曲靖市', '曲靖市', '曲靖市', '曲靖市', '曲靖市', '文山州', '文山州', '文山州', '玉溪市', '玉溪市', '玉溪市', '昭通市', '昭通市', '昭通市', '昭通市'];
var _res = []; //
//_arr.sort();
for (var i = 0; i < _arr.length;) {
var count = 0;
var index=-1;
for (var j = i; j < _arr.length; j++) {
if (_arr[i] == _arr[j]) {
count++; //计算出现了几次
index=i;//第一次出现的下标
}
}
_res.push([_arr[i], count,index]);
i += count;
}
//_res 二维数维中保存了 值和值的重复数以及第一次出现的下标
var _newArr = [];
for (var i = 0; i < _res.length; i++) {
// console.log("值:"+_res[i][0] + "重复次数:" + _res[i][1]++ "第一次下标:" + _res[i][2]);
_newArr.push(_res[i][0] + 'x' + _res[i][1]+"=>"+_res[i][2]);
}
console.log(_newArr);
计算时间差
/**
* 获取两个时间差
* @param seconds 时间差的毫秒数
* @param type 需要返回的类型,可按照需求自行新增分支组合返回
* @returns 返回时间差(年月日时分秒)
* @description var date1 = new Date("2022-09-20T16:35:43"); //开始时间
var date2 = new Date("2022-10-23T22:34:12.29"); //结束时间
var date3 = date2.getTime() - date1.getTime() //时间差的毫秒数
formatSeconds(seconds);
*/
const formatSeconds = (seconds: number,type:number=0) => {
var monthTime = 0 // 月
var result:any = ''
//计算出相差天数
var dayTime = Math.floor(seconds / (24 * 3600 * 1000))
//计算出小时数
var leave1 = seconds % (24 * 3600 * 1000) //计算天数后剩余的毫秒数
var hourTime = Math.floor(leave1 / (3600 * 1000))
//计算相差分钟数
var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数
var minuteTime = Math.floor(leave2 / (60 * 1000))
//计算相差秒数
var leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数
var secondTime = Math.round(leave3 / 1000)
if (dayTime > 30) {
monthTime = Math.floor(dayTime / 30)
}
switch(type){
case 0:
result = (monthTime>12?Math.floor(monthTime / 12):0) + "年" +
(monthTime>=12?Math.floor(monthTime % 12):monthTime) + "月" +
(dayTime>=30? Math.floor(dayTime % 30):dayTime) + "天" + hourTime + "时"
+ ((minuteTime >= 10 ? minuteTime : '0' + minuteTime) as any) + "分" +
((secondTime >= 10 ? secondTime : '0' + secondTime)) + "秒";
break;
case 1:
result = (monthTime>12?Math.floor(monthTime / 12):0) + "年";
break;
case 2:
result = (monthTime>=12?Math.floor(monthTime % 12):monthTime) +"个月";
break;
case 3:
result = (dayTime>=30? Math.floor(dayTime % 30):dayTime) +"天";
break;
case 4:
result = leave1+"时";
break;
case 5:
result = leave2+"分";
break;
case 6:
result = leave3+"秒";
break;
}
return result
}
结果 1 年 7 月 12天 5小时 58 分钟29 秒
根据数组对象中的相同id值进行合并,并将name值合并,并且用逗号隔开返回新的数组对象
let dataArr = [
{
id:1,
name:"A",
score:10,
},
{
id:2,
name:"B",
score:10,
},
{
id:1,
name:"c",
score:10,
},
{
id:2,
name:"D",
score:10,
},
]
var beforeData = dataArr; //将dataArr赋值给beforeData 也可直接操作dataArr
let tempArr = [];
let afterData = [];//新数组
for (let i = 0; i < beforeData.length; i++) {
if (tempArr.indexOf(beforeData[i].id) === -1) {
afterData.push({
id: beforeData[i].id,
score: beforeData[i].score,
name: [beforeData[i].name],
});
tempArr.push(beforeData[i].id);
} else {
for (let j = 0; j < afterData.length; j++) {
if (afterData[j].id == beforeData[i].id) {
afterData[j].name.push(beforeData[i].name);
break;
}
}
}
}
//循环afterData并且合并name值用逗号隔开
afterData.map((item) => {
item.name= item.name.join(",");
});
console.log(afterData,'afterData')
判断一个数组对象中是否包含另外一个数组对象
var a = [{
"id": 1,
"name": 2
}];
var b = [{
"name": 2,
"id": 1
}];
for (let j = 0; j < b.length; j++) {
if (!a.find(item => item.id === b[j].id)) {
a.push(b[j])
}
}
console.log(a)
//结果:[{"id":1,"name":2}]
//b数组根据返回的数据进行替换
根据对象属性来删除数组中的对象
var a = [{
"id": 1,
"name": 2
}, {
"id": 2,
"name": 2
}, {
"id": 1,
"name": 2
}, {
"id": 1,
"name": 2
}];
function handle(cc) {
cc.forEach((value, index) => {
if (value.id == 1) {
cc.splice(index, 1);
handle(cc);
}
})
return cc;
}
console.log(JSON.stringify(handle(a)))
//结果 [{"id":2,"name":2}]
通过 document.getElementsByName 获取单选框选中的值
<!DOCTYPE html>
<html>
<head>
<title>获取单选框的值</title>
</head>
<body>
<form>
<input type="radio" name="gender" value="male"> Male<br>
<input type="radio" name="gender" value="female"> Female<br>
<input type="radio" name="gender" value="other"> Other<br>
<button type="button" οnclick="getSelectedRadioButtonValue()">获取选中的值</button>
</form>
<script>
function getSelectedRadioButtonValue() {
var radios = document.getElementsByName('gender');
for (var i = 0; i < radios.length; i++) {
if (radios[i].checked) {
var selectedValue = radios[i].value;
alert("选中的值是:" + selectedValue);
break;
}
}
}
</script>
</body>
</html>