Open huabingtao opened 4 years ago
Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。
Set对象是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即 Set 中的元素是唯一的。
Set 构造函数能让你创建 Set 对象,其可以存储任意类型的唯一值,无论是 primitive values 或者对象引用。
new Set([iterable]) 参数 iterable 可选 如果传递一个可迭代对象,它的所有元素将不重复地被添加到新的 Set中。 如果不指定此参数或其值为null,则新的 Set为空。 返回值 A new Set object. let mySet = new Set()
new Set([iterable]) 参数 iterable 可选 如果传递一个可迭代对象,它的所有元素将不重复地被添加到新的 Set中。 如果不指定此参数或其值为null,则新的 Set为空。 返回值 A new Set object.
let mySet = new Set()
mySet.add(1) // Set [ 1 ] mySet.add(5) // Set [ 1, 5 ] mySet.add(5) // Set [ 1, 5 ] mySet.add('some text') // Set [ 1, 5, 'some text' ] let o = {a: 1, b: 2} mySet.add(o)
## 实例属性 **Set.prototype.size** 返回 Set 对象中的值的个数 ## 实例方法 ### add add() 方法用来向一个 Set 对象的末尾添加一个指定的值。
var mySet = new Set();
mySet.add(1); mySet.add(5).add("some text"); // 可以链式调用
### clear clear() 方法用来清空一个 Set 对象中的所有元素。
var mySet = new Set(); mySet.add(1); mySet.add("foo");
mySet.size; // 2 mySet.has("foo"); // true
mySet.clear();
mySet.size; // 0 mySet.has("bar") // false
### delete delete() 方法可以从一个 Set 对象中删除指定的元素。成功删除返回 true,否则返回 false。
var mySet = new Set(); mySet.add("foo");
mySet.delete("bar"); // 返回 false,不包含 "bar" 这个元素 mySet.delete("foo"); // 返回 true,删除成功
mySet.has("foo"); // 返回 false,"foo" 已经成功删
### entries entries() 方法返回一个新的迭代器对象 ,这个对象的元素是类似 [value, value] 形式的数组,value 是集合对象中的每个元素,迭代器对象元素的顺序即集合对象中元素插入的顺序。由于集合对象不像 Map 对象那样拥有 key,然而,为了与 Map 对象的 API 形式保持一致,故使得每一个 entry 的 key 和 value 都拥有相同的值,因而最终返回一个 [value, value] 形式的数组。
var mySet = new Set(); mySet.add("foobar"); mySet.add(1); mySet.add("baz");
var setIter = mySet.entries();
console.log(setIter.next().value); // ["foobar", "foobar"] console.log(setIter.next().value); // [1, 1] console.log(setIter.next().value); // ["baz", "baz"]
### forEach forEach 方法会根据集合中元素的插入顺序,依次执行提供的回调函数。
function logSetElements(value1, value2, set) { console.log("s[" + value1 + "] = " + value2); }
new Set(["foo", "bar", undefined]).forEach(logSetElements);
// logs: // "s[foo] = foo" // "s[bar] = bar" // "s[undefined] = undefined"
### has 返回一个布尔值,表示该值在Set中存在与否。
mySet.has(1);
### keys() | values() values() 方法返回一个 Iterator 对象,该对象按照原Set 对象元素的插入顺序返回其所有元素。 keys() 方法是这个方法的别名 (与 Map 对象相似); 它的行为与 value 方法完全一致,返回 Set 对象的元素
var mySet = new Set(); mySet.add("foo"); mySet.add("bar"); mySet.add("baz");
var setIter = mySet.values();
console.log(setIter.next().value); // "foo" console.log(setIter.next().value); // "bar" console.log(setIter.next().value); // "baz"
Set 对象
Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。
简述
Set对象是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即 Set 中的元素是唯一的。
构造函数
Set 构造函数能让你创建 Set 对象,其可以存储任意类型的唯一值,无论是 primitive values 或者对象引用。
语法
mySet.add(1) // Set [ 1 ] mySet.add(5) // Set [ 1, 5 ] mySet.add(5) // Set [ 1, 5 ] mySet.add('some text') // Set [ 1, 5, 'some text' ] let o = {a: 1, b: 2} mySet.add(o)
var mySet = new Set();
mySet.add(1); mySet.add(5).add("some text"); // 可以链式调用
var mySet = new Set(); mySet.add(1); mySet.add("foo");
mySet.size; // 2 mySet.has("foo"); // true
mySet.clear();
mySet.size; // 0 mySet.has("bar") // false
var mySet = new Set(); mySet.add("foo");
mySet.delete("bar"); // 返回 false,不包含 "bar" 这个元素 mySet.delete("foo"); // 返回 true,删除成功
mySet.has("foo"); // 返回 false,"foo" 已经成功删
var mySet = new Set(); mySet.add("foobar"); mySet.add(1); mySet.add("baz");
var setIter = mySet.entries();
console.log(setIter.next().value); // ["foobar", "foobar"] console.log(setIter.next().value); // [1, 1] console.log(setIter.next().value); // ["baz", "baz"]
function logSetElements(value1, value2, set) { console.log("s[" + value1 + "] = " + value2); }
new Set(["foo", "bar", undefined]).forEach(logSetElements);
// logs: // "s[foo] = foo" // "s[bar] = bar" // "s[undefined] = undefined"
mySet.has(1);
var mySet = new Set(); mySet.add("foo"); mySet.add("bar"); mySet.add("baz");
var setIter = mySet.values();
console.log(setIter.next().value); // "foo" console.log(setIter.next().value); // "bar" console.log(setIter.next().value); // "baz"