第 6 章 对象、数组

创建 Object

显式地创建 Object 的实例有两种方式。

  1. 使用 new 操作符, Object 构造函数
person.name = "Nicholas";
  1. 对象字面量(object literal)[字面意思]
"name": "Nicholas",
"age": 29
};
创建数组
  1. 使用 Array 构造函数,比如:let colors = new Array();
  2. 数组字面量(array literal)表示法
    let colors = [“red”, “blue”, “green”]; // 创建一个包含 3 个元素的数组
    Array.from() 的第一个参数是一个类数组对象
console.log(Array.from("Matt")); // ["M", "a", "t", "t"]

判断一个对象是不是数组。:

if (value instanceof Array){
// 操作数组
}

arry.some()方法

some() 方法用于检测数组中的元素是否满足指定条件 函数提供

  • 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
  • 如果没有满足条件的元素,则返回false。

function checkAdult(age) {
    return age >= 18;
}

function myFunction() {
    document.getElementById("demo").innerHTML = ages.some(checkAdult);
}

Array.isArray() 方法

// 操作数组
}

fill() 方法可以向数组填充指定的值

// 用 5 填充整个数组
zeroes.fill(5);
console.log(zeroes); // [5, 5, 5, 5, 5]
zeroes.fill(0); // 重置

find()方法用于查找数组中符合条件的第一个元素,如果没有符合条件的元素,则返回undefined

let arr1 = [1, 2, 3, 4, 5];
let num = arr1.find(item => item > 1);
console.log(num)  //輸出的結果是2

toString() 方法,以得到最终的字符串

alert(colors.toString()); // red,blue,green
  • ECMAScript 数组提供了 push() 和 pop() 方法,以实现类似栈的行为。
    push() 方法接收任意数量的参数,并将它们添加到数组末尾,返回数组的最新长度。
    pop() 方法则
    用于删除数组的最后一项,同时减少数组的 length 值,返回被删除的项。来看下面的例子:
let count = colors.push("red", "green"); // 推入两项
alert(count); // 2
count = colors.push("black"); // 再推入一项
alert(count); // 3
let item = colors.pop(); // 取得最后一项
alert(item); // black
  • 队列方法
    就像栈是以 LIFO 形式限制访问的数据结构一样,队列以先进先出(FIFO,First-In-First-Out)形式
    限制访问。
    shift() ,它会删除数
    组的第一项并返回它,然后数组长度减 1。
let count = colors.push("red", "green"); // 推入两项
alert(count); // 2
count = colors.push("black"); // 再推入一项
alert(count); // 3
let item = colors.shift(); // 取得第一项
alert(item); // red

indexOf() 和 lastIndexOf() 都返回要查找的元素在数组中的位置,如果没找到则返回1。

alert(numbers.indexOf(4)); // 3
alert(numbers.lastIndexOf(4)); // 5
  • 迭代方法
let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
let filterResult = numbers.filter((item, index, array) => item > 2);
alert(filterResult); // 3,4,5,4,3
  // 过滤出不属于的

map方法非常适合创建一个与原
始数组元素一一对应的新数组。 不会改变原始数组。方法返回一个新数组,这个新数组:由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。

let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
let mapResult = numbers.map((item, index, array) => item * 2);
alert(mapResult); // 2,4,6,8,10,8,6,4,2
  • 归并方法
    这两个方法都会迭代数
    组的所有项,并在此基础上构建一个最终返回值。

可以使用 reduce() 函数执行累加数组中所有数值的操作,比如:

let values = [1, 2, 3, 4, 5];
let sum = values.reduce((prev, cur, index, array) => prev + cur);
alert(sum); // 15
  • webGl
    有了它,开发者就能够编写涉及复杂图形的应用程序
Map

与 Object 只能使用数值、字符串或符号作为键不同, Map 可以使用任何 JavaScript 数据类型作为
键。
使用 new 关键字和 Map 构造函数可以创建一个空映射:
const m = new Map();

/ 使用嵌套数组初始化映射
const m1 = new Map([
["key1", "val1"],
["key2", "val2"],
["key3", "val3"]
]);
alert(m1.size); // 3

初始化之后,可以使用 set() 方法再添加键/值对。

const m = new Map().set("key1", "val1");
m.set("key2", "val2")
.set("key3", "val3");
alert(m.size); // 3
const m = new Map();
const symbolKey = Symbol();

m.set(symbolKey, "symbolValue");
alert(m.get(symbolKey)); // symbolValue

从大型 Object 和 Map 中查找键/值对的性能差异极小,但如果只包含少量键/值对,
则 Object 有时候速度更快。

Set

ECMAScript 6 新增的 Set 是一种新集合类型,为这门语言带来集合数据结构
使用 new 关键字和 Set 构造函数可以创建一个空集合:
const m = new Set();

// 使用数组初始化集合
const s1 = new Set(["val1", "val2", "val3"]);
alert(s1.size); // 3

初始化之后,可以使用 add() 增加值,使用 has() 查询,通过 size 取得元素数量,以及使用 delete()
和 clear() 删除元素:

const s = new Set();
alert(s.has("Matt")); // false
alert(s.size); // 0
s.add("Matt")
.add("Frisbie");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值