1、使用map 替换数组对象中的某个Key
getDynamics(data).then((response) => {
const arrayOfObj = response.data.valueList;
this.dynaList = arrayOfObj.map(({ vmodel: vModel, ...rest }) => ({
vModel,
...rest,
}));
});
2、将数组对象中的数组属性替换为数组对象
this.drawingList = this.drawingList.map((item) => ({
...item,
options: item.options.map((item) => ({
label: item,
value: item,
})),
}));
3、数据保存时候,删除某个不需要的字段
// 数据深拷贝
let subList = JSON.parse(JSON.stringify(newList));
// 保存时候去除某个字段
subList.map((e) => {
delete e.dynamicFormId;
});
4、判断数组对象是否有重复的值,并进行去重
let oldList = this.drawingList.map((item) => item["vModel"]);
let newList = new Set(oldList);
if (newList.size !== oldList.length) {
let map = new Map();
for (let item of this.drawingList) {
map.set(item.vModel, item);
}
this.drawingList = [...map.values()];
this.$message({
showClose: true,
message: "请不要添加重复项目",
type: "warning",
});
5、对数组对象中的key进行批量替换
let newArr = res.data
let dataNew = []; //新数组
newArr.map((item) => {
let obj = {
type: item.tag,
title: item.label,
field: item.vModel,
value: item.defaultValue,
col: {
span: item.span,
},
options: item.options,
props: {
maxlength: item.maxlength,
placeholder: item.placeholder,
clearable: item.clearable,
disabled: item.disabled,
readonly: item.readonly,
multiple: item.multiple,
filterable: item.filterable,
},
validate: [
{
required: item.required,
message: "请输入" + item.label,
trigger: "blur",
},
],
};
dataNew.push(obj);
});
6、给数组中的每个值插入Key
// 数组插入key
let printTitle = objkeys.map((item) => ({
field: item,
}));
7、数组匹配,以及抽取所需数组对象对应的字段,示例为element-ui穿梭框示例88
// 匹配右侧已选列表的数组
let submitData = this.listValue.map(
(item) => this.fileArr.filter((i) => i?.itemId == item)[0]
);
// 声明一个空数组
let dataNew = [];
// 通过map方法,确定当前点击的categoryID
submitData.map((item) => {
let obj = {
itemId: item.itemId,
itemByname: item.itemName,
};
dataNew.push(obj);
});
8、两个不同的数组合并
this.indexCardList = res.result.map((item, index) => {
return { ...item, ...this.cardImgList[index] };
});
9、数组和另外一个数组对象进行匹配筛选
// 两个数组匹配筛选
let list = this.checkQuality.map(
(item) => this.optionOldArray.filter((i) => i?.name == item)[0]
);
10、js判断数组重复
// 判断数组重复
if (this.checkdCodeList.length > 0) {
this.seacrchAllCodeList = this.seacrchAllCodeList.filter((item) => {
return !this.checkdCodeList.some(ele => ele.fieldName === item.fieldName)
});
}