0
点赞
收藏
分享

微信扫一扫

JS常用数组方法及计算场景

weednoah 2022-02-14 阅读 130

一、常用方法

数组:let numbers = [1, 2, 3, 4, 5, 6, 7];

1、filter——返回该函数会返回true的项组成的数组

// filter
let filterResult = numbers.filter(function (item, index, array) {
  return item > 2;
});
console.log(filterResult); // [3, 4, 5, 6, 7]

2、map——返回每次函数调用的结果组成的数组

// 当数组为dom集合时,numbers.map(function (index, item, array)
let mapResult = numbers.map(function (item, index, array) {
  return item * 2;
});
console.log(mapResult); // [2, 4, 6, 8, 10, 12, 14]

3、some——如果该函数任意一项返回true,则返回true;

let someResult = numbers.some(function (item, index, array) {
  return item > 2;
});
console.log(someResult); // true

4、every——如果该函数每一项都返回true,则返回true;

let everyResult = numbers.every((item, index, array)=> {
  return item > 2;
});
console.log(everyResult); // false

5、find—返回第一个符合条件的项

let everyResult = numbers.find((item, index, array)=> {
  return item > 2;
});
console.log(everyResult); // 3

6、findIndex—返回第一个符合条件的位置,如果所有成员都不符合条件,则返回-1

let everyResult = numbers.findIndex((item, index, array)=> {
  return item > 2;
});
console.log(everyResult); // 2

7、includes—判断数组是否包含指定元素,如果是返回 true,否则false

numbers.includes(2);	//true
numbers.includes(10);	//false

二、计算场景

1、arr1是原数组,arr2是操作后数组,求目标数组(保留删除项disabled=0)

var arr1 = [{
	"disabled": 1,
	"id": 159,
	"dictKey": "warehouse_dept_1",
	"dictValue": "仓储一部"
 },{
	"disabled": 1,
	"id": 160,
	"dictKey": "warehouse_dept_2",
	"dictValue": "仓储二部"
 },{
      "disabled": 1,
      "id": 161,
      "dictKey": "warehouse_dept_3",
      "dictValue": "仓储三部"
  }
]
var arr2 = [{
        "disabled": 1,
        "id": 159,
        "dictKey": "warehouse_dept_1",
        "dictValue": "仓储一部11"
    },
    {
        "disabled": 1,
        "id": 160,
        "dictKey": "warehouse_dept_2",
        "dictValue": "仓储二部"
    },
    {
        "disabled": 1,
        "dictValue": "ceshi"
    },
]
let commonIds = arr2.filter((x) => arr1.find((y) => y.id === x.id));
let deleteIds = arr1.filter((x) => !arr2.find((y) => y.id === x.id));
let adds = arr2.filter((x) => !x.id);
deleteIds = deleteIds.map((item) => {
  item.disabled = 0;
  return item;
});
let result = [...commonIds, ...adds, ...deleteIds];
举报

相关推荐

0 条评论