美文网首页
ES6高阶函数部分案例

ES6高阶函数部分案例

作者: 回忆不死我们不散 | 来源:发表于2019-10-30 10:15 被阅读0次

js引入图片地址

require("../assets/logo.png")

map函数取出想要的部分字段

let arr = [{
        id: 1,
        name: "tony",
        class: 1,
        garde: 88
   },{
        id: 2,
        name: "Tom",
        class: 1,
        grade: 90
   },{
        id: 3,
        name: "Jack",
        class: 1,
        grade: 86
   }];
let res = arr.map(({name, id}) => ({ id, name }))
 console.log(res)
展示.png

let arr = [
  {
    'id': '1',
    'name': '小红',
  },
  {
    'id': '2',
    'name: '小白',
  },
  {
    'id': '3',
    'name': '小黄',
  }
];
// 使用map()生成数组
let new_arr = arr.map(obj => {return obj.name})
// 输出 ['小红','小白','小黄']

把两个数组里的多个对象一一对应合并?es6的拓展...符

方法1

var obj1 = [{
  "id": 980550455852,
  "model": "XQG70-S1208FW",
  "color": "白",
  "invStatusName": "正品",
  "bactualQty": 10947,
  "brealyQty": 11000,
  "bavailQty": 53
}, {
  "id": 980550566221,
  "model": "XQB70-C3006",
  "color": "灰",
  "invStatusName": "正品",
  "bactualQty": 11,
  "brealyQty": 6,
  "bavailQty": -5
}];

var obj2 = [{
  "price": "6666"
}, {
  "price": "8888"
}];

let res = obj1.map((o,i) => { return {...o,...obj2[i]}});
console.log(res)

方法2

//es2015实现合并对象函数代码
function assign(target, args) {
    if (target === null) return;
    if (Object.assign) {
        return Object.assign(target, args);
    } else {
        var _ = Object(target);
        for (var j = 1; j < arguments.length; j++) {
            var source = arguments[j];
            if (source) {
                for (var key in source) {
                    if (Object.prototype.hasOwnProperty.call(source, key)) {
                        _[key] = source[key];
                    }
                }
            }
        }
        return _;
    }
};

var result = obj1.map(function(o,index){
    console.log(o)
    console.log(index)
  return assign(o,obj2[index]);
})
console.log(result)
展示.png

像数组中对象添加数据

records=[{"status":"1"},{"status":"1"}];

records.forEach(item => {
    item.addState = 1;
 
  })
console.log(records)
image.png

像数组中点击添加对象

let Polyline1=[];
let lon0 = e.point.lng;
let lat0 = e.point.lat;
Polyline1.push({lon:lon0,lat:lat0})
Polyline0(Polyline1)

获取下标

JavaScript findIndex() 方法

对象

var obj = {'id':1,'name':'叶落森','sex':'女'};
    var arr = Object.keys(obj);
    console.log(arr);  // ['id','name','sex']
    console.log(arr.length);  //3

Object.keys可以获取key值

Object.keys(obj)

Object.values可以获取value值

Object.values(obj)

对象取值

data(){
        return{
            list:{"li":{aa:[],bb:"1111"}}
        }
    },

console.log(this.list.li.aa)
let tye = 'li'
console.log(this.list[tye].aa)

forEach应用

image.png
image.png
https://www.cnblogs.com/hdnav/p/8309773.html
数组元素拼接
https://cloud.tencent.com/developer/article/1352082
let phone=['小米','三星','苹果','一加','乐视','OPPO','VIVO','魅族','联想'];
let newphone=phone.map((x)=>{
    return x+'手机'
    console.log(x)
})
    console.log(phone,newphone)
image.png

以逗号分隔新数组

var str = "aaa,bbb,ccc";
var arr = str.split(',');
//检测是不是数组的实例
console.log(arr instanceof Array);//true

js 删除数组中第一个元素,不改变原数组返回新数组的方法

<script>
    var arr = new Array('a','b','c');
    // 赋值给另一个数组
    var newarr = arr.concat();
    // 处理新数组,原数组不变
    newarr.shift();
    // 打印结果
    console.log(arr);
    console.log(newarr);
</script>
["a", "b", "c"]
["b", "c"]

js 删除数组中第一个元素,并返回被删除的值

<script>
    var arr = new Array('飞鸟慕鱼','feiniaomy.com','mochu');
    // 删除数组中第一个元素,并反回被删除元素的值
    str = arr.shift();
    console.log(str);
</script>

移除最后一个元素

先复制在删除,这样就不直接修改arr了

function truncate(arr) {
    newarr=arr.slice(0);
    newarr.pop();
    return newarr;
}

数组转字符串

var a, b;
a = new Array(0,1,2,3,4);
b = a.join("-");      //"0-1-2-3-4"

截取数据

var str = "123-456-789-000";
document.write(str.split("-"))//返回["123","456","789","000"]
//输出:123,456,789,000
document.write(str.split("-",3))//返回["123","456","789"]
//输出:123,456,789

遍历当前数组中的键拿到另一个数组中包含相同键的当前数组对象

const arr = [1,2,3,4,5,6,7]
const list = [
    {openId: 1, timelineId: 1, showNo: 1, uid: 1},
    {openId: 2, timelineId: 1, showNo: 1, uid: 1},
    {openId: 9, timelineId: 1, showNo: 1, uid: 1},
    {openId: 4, timelineId: 1, showNo: 1, uid: 1},
    {openId: 5, timelineId: 1, showNo: 1, uid: 1}
]
const params = list.filter(item=> arr.indexOf(item.openId) > -1)
console.log(params)
image.png

将两个对象数组根据相同的索引index合并为一个数组

this.currentTotalList = this.totalList.map((item, index) => ({ ...item, ...daysList[index] }))

将两个对象数组根据相同的键值合并为一个数组

let currentEveryList = this.everyList.map(item => ({...item, ...signList.filter(s => s.signDate === item.signDate)[0]}))

从当前数组中筛选符合条件的值

this.materialss = this.materials.filter(item => item.categoryId === this.curTab.categoryId)
image.png

根据两个数组的id也就是为一值判断,取不同值

//遍历数组
       getArrEqual(arr1, arr2) {
        let newArr = [...arr1];
        for (let i = 0; i < arr2.length; i++) {
            for (let j = 0; j < newArr.length; j++) {
                if (newArr[j].enterpId== arr2[i].enterpId) {
                    newArr.splice(j, 1)
                }
            }
        }
        return newArr;
      },

2.去掉空数组空字符串、undefined、null

var arr = ['1','2',undefined, '3.jpg',undefined]
var newArr = arr.filter(item => item)
console.log(newArr)

var arr = ['1','2',null, '3.jpg',null]
var newArr = arr.filter(item => item)
console.log(newArr)

>//空字符串里面不能包含空格
var arr = ['1','2','', '3.jpg','']
var newArr = arr.filter(item => item)
console.log(newArr)

3.去掉数组中不符合项

var arr = [20,30,50, 96,50]
var newArr = arr.filter(item => item>40)  
console.log(newArr)

4.过滤不符合项

var arr = ['10','12','23','44','42']
var newArr = arr.filter(item => item.indexOf('2')<0) 
console.log(newArr)

5.数组去重

var arr = [1, 2, 2, 3, 4, 5, 5, 6, 7, 7,8,8,0,8,6,3,4,56,2];
var arr2 = arr.filter((x, index,self)=>self.indexOf(x)===index)  
console.log(arr2); //[1, 2, 3, 4, 5, 6, 7, 8, 0, 56]
var data = ['法国','澳大利亚','智利','新西兰','西班牙','加拿大','阿根廷','美国','0','国产','波多黎各','英国','比利时','德国','意大利','意大利',];
var result = [];
for(var i=0,len=data.length;i<len;i+=6){
result.push(data.slice(i,i+6));
}
拼接
<div class="demo">
           
</div>
 
 
<script src="../jquery.js"></script>
<script>
    var arr=[1,2,3,4];
    var html='';
    for(var i=0;i<arr.length;i++){
        html+='<li class="list list'+(i+1)+'">'+arr[i]+'</li>'
    }
    $(".demo").html(html);
</script>

相关文章

  • ES6高阶函数部分案例

    js引入图片地址 map函数取出想要的部分字段 把两个数组里的多个对象一一对应合并?es6的拓展...符 方法1 ...

  • 数组合并及数组去重 对象数组去重

    1.数组合并concat方法 es6扩展符... 数组循环 2.数组去重高阶函数reduce: es6 filte...

  • 高级语法

    高阶函数:以其他函数作为其参数或者返回值的函数。跟JS一样,python提供了部分内置高阶函数 匿名函数:pyth...

  • 06 高阶函数

    所谓高阶函数,就是将函数对象作为函数的参数或者函数的返回值,高阶函数是抽象必不可少的工具 柯里化和部分函数 函数其...

  • python学习(三)函数式编程

    高阶函数 函数也是变量,函数参数为函数的函数,称作高阶函数 自定义高阶函数 内建高阶函数 map/reducema...

  • 11.Lambda和高阶函数(Lambda and Higher

    高阶函数 kotlin_Lambda,高阶函数 *swift_高阶函数

  • Python | 高阶函数基本应用及Decorator装饰器

    一、高阶函数 理解什么是高阶函数?以及高阶函数的基本应用方法 ▲ 高阶函数 在了解什么是高阶函数之前,我们来看几个...

  • 四、函数进阶

    一. 高阶函数 参数类型包含函数类型或返回值类型为函数类型的函数为高阶函数。 常见的高阶函数 高阶函数的调用 二....

  • react hoc

    高阶函数对组件的封装,譬如多个组件大部分相同,只是需要局部变化,可通过高阶函数来进行封装处理。

  • Kotlin 高阶函数

    什么是高阶函数 将函数作为参数或者返回值的,称高阶函数。 定义高阶函数 action是一个高阶函数,(Int) -...

网友评论

      本文标题:ES6高阶函数部分案例

      本文链接:https://www.haomeiwen.com/subject/dutovctx.html