一,针对于数组

const arr = ['a','b','c','d'];

Array.indexOf  将“返回第一次出现给定元素的索引”;

console.log(arr.indexOf('b')); //

Array.includes 只想知道数组是否包含某个值;布尔值

console.log(arr.includes('c')); // true

二,针对于数组对象

const objArr = [
{ id: 1, name: 'a' },
{ id: 2, name: 'b' },
{ id: 3, name: 'c' },
{ id: 4, name: 'd' },
{ id: 5, name: 'b' },
]
function getObj (name) {
return objArr => objArr.name===name;
}

Array.filter  返回一个新的数组,过滤,它接受一个回调函数作为参数,基于一个包含所有元素的数组创建出一个新的数组。遍历整个数组;

console.log(objArr.filter(getObj('b')));
// [{ id: 2, name: 'b' },{ id: 5, name: 'b' }]

Array.find 返回一个元素值,只要找到第一个满足回调函数的元素,Array.find 就会停止,返回的是一个元素值,无需遍历整个数组;

console.log(objArr.find(getObj('b')));
// {id: 2, name: "b"}

Array.some 返回所需的布尔值。另外,从语义上看,Array.some 表示我们只想知道某个元素是否存在,而不需要得到这个元素。

console.log(objArr.some(getObj('b')));
// true

二,在数组对象中找到满足条件的对象,并对其累加新的属性值

方法一:最直接,最简单,用 Array.reduce

// 回调函数
function callbackReduce (x,y) {
return y.name === 'b'
? x.concat(Object.assign({},y,{age:11}))
: x
}
// reduce(回调函数,空数组)
console.log(objArr.reduce(callbackReduce,[]))
// [{id: 2, name: "b", age: 11},{id: 5, name: "b", age: 11}]

方法二 :间接,需要Array.filter和Array.map一起用才能实现

console.log(
objArr
.filter(x => x.name === 'b')
.map(x => Object.assign({},x,{color:'red'}))
)
// [{ id: 2, name: "b", color: "red" }, { id: 5, name: "b", color: "red" }]

JavaScript中Array的更多相关文章

  1. Javascript中Array(数组)对象常用的几个方法

    Javascript中Array数组的几个常用方法 pop()  --获取数组中末尾的元素 shift() --获取数组中首位元素 push() --在数组中末尾增加元素 slice()  --按照下 ...

  2. Javascript 中 Array的 sort()和 compare()方法

    Javascript 中 Array的 sort()方法其实是把要排序的内容转化为string(调用 toString()), 然后按照字符串的第一位 ascii 码先后顺序进行比较,不是数字. 我们 ...

  3. JavaScript 中Array数组的几个内置函数

    本文章内容均参考<JavaScript高级程序设计第三版> 今天在看JavaScript书籍的时候,看到之前没有了解过的JavaScript中Array的几个内置函数对象,为了之后再开发工 ...

  4. JavaScript中Array方法总览

    title: JavaScript中Array方法总览 toc: true date: 2018-10-13 12:48:14 push(x) 将x添加到数组最后,可添加多个值,返回数组长度.改变原数 ...

  5. JavaScript中Array(数组) 对象

    JavaScript中Array 对象 JavaScript中创建数组有两种方式 (一)使用直接量表示法: var arr4 = []; //创建一个空数组var arr5 = [20]; // 创建 ...

  6. javascript 中Array.prototype.sort 函数的用法

    来源:http://www.jb51.net/article/5769.htm JavaScript中对变量的操作都是通过引用方式,而对数组也一样. 前两天想要对一个数组进行复制,一直苦于找不到办法( ...

  7. JavaScript中Array的正确使用方式

    在 JavaScript 中正确使用地使用 Array 的方法如下: 用 Array.includes 代替 Array.indexOf “如果你要在数组中查找元素,请使用 Array.indexOf ...

  8. 浅谈 JavaScript 中 Array 类型的方法使用

    前言:Array 类型是 JavaScript 中除了 Object 类型以外最常用的类型. 一.创建数组 JavaScript 中的数组与其他语言中的数组有着很大的区别.例如Java.PHP等语言中 ...

  9. JavaScript中Array的一些实用操作技巧

    最近在调试JSP页面时频繁与ajax打交道,在复杂场景下,ajax传参数就需要对大量参数进行处理.这时我才发现,熟练Array的处理真的会使开发轻松不少!! 关于Array Array的创建很灵活,可 ...

  10. Javascript中Array.prototype.map()详解

    map 方法会给原数组中的每个元素都按顺序调用一次 callback 函数.callback 每次执行后的返回值组合起来形成一个新数组. callback 函数只会在有值的索引上被调用:那些从来没被赋 ...

随机推荐

  1. idea过期激活

    1.进到文件夹中:C:\Windows\System32\drivers\etc ,找到hosts文件,用记事本编辑 2.将“  0.0.0.0 account.jetbrains.com ”添加到h ...

  2. Java写 插入 选择 冒泡 快排

    /** * Created by wushuang on 2014/11/19. */ public class SortTest { @Test public void mainTest() { i ...

  3. 【WP8】为Webbrowser添加ScrollBar

    在WP8中,控件WebBrowser没有提供对滚动条的支持,而在内置的IE中,却可以显示出滚动条(微软这是在坑我们吗),但如果在客户端使用Webbrowser的话,自己构造ScrollBar来显示 通 ...

  4. 【NLP】文本相似度

    http://www.ruanyifeng.com/blog/2013/03/cosine_similarity.html

  5. NAS 创建大文件

      不是很懂,但是管用.先记录下来. http://www.111cn.net/sys/linux/55537.htm

  6. 【QT学习】信号和槽机制

    QT中发射信号使用 emit 来完成. 类要使用信号和槽机制,必须从QObject或者QObject子类继承.必须在类的定义中加上 Q_OBJECT 宏. 信号和槽连接时,参数类型必须相同. 关键字大 ...

  7. QT运行出错:QObject::connect: Parentheses expected以及QObject::connect: No such slot ***

    我在QGraphicsScene子类中添加了item的弹出菜单,并连接Action到槽函数,结果槽函数不起作用,输出:QObject::connect: No such slot ***  C++ C ...

  8. 修复日志,阻止给日志多次添加handlers时候重复打印的问题

    1.解决如果多次添加handlers重复打印的问题.在__add_handlers方法中作出判断. 2.由get_logger_and_add_handlers和get_logger_without_ ...

  9. AES五种加密模式

    分组密码在加密时明文分组的长度是固定的,而实用中待加密消息的数据量是不定的,数据格式可能是多种多样的.为了能在各种应用场合安全地使用分组密码,通常对不同的使用目的运用不同的工作模式. 一.电码本模式( ...

  10. IOS UILineBreakMode的各种情况分析

    typedef enum {    UILineBreakModeWordWrap = 0,    UILineBreakModeCharacterWrap,    UILineBreakModeCl ...