const set = new Set("123");
console.log(set);
輸出是“設定{'1','2','3'}”
uj5u.com熱心網友回復:
該Set構造需要一個迭代,并采取它的每一個值。
默認情況下,字串具有一個@@iterator屬性,使它們可迭代:
const foo = "xyz";
console.log(...foo);
const [a, b, c] = foo;
console.log(a, b, c);
for (const char of foo)
console.log(char);
因此,這正是將字串傳遞給Set建構式時會發生的情況- 它像使用任何其他可迭代物件一樣繪制每個值:
const foo = "xyz";
const bar = [1, 2, 3]
console.log("set of string:", new Set(foo));
console.log("set of array :", new Set(bar));
<h1>Check the browser console</h1>
uj5u.com熱心網友回復:
因為字串是可迭代的,當你給了Set構造一個迭代的物件,1它遍歷由物件的迭代器提供的值,并將它們添加到組。在字串的情況下,字串迭代器迭代字串代碼點 - 在您的示例中"1","2"、 和"3"。(有關“代碼點”與“代碼單元”以及字串是什么的更多資訊,請閱讀我的博客文章。)
如果要將字串添加到集合中,則必須單獨添加或將其包裝在另一個可迭代物件(如陣列)中:
// Add separately:
let set = new Set();
set.add("123");
console.log(set.size); // 1
console.log([...set]); // ["123"]
// Or wrap:
set = new Set(["123"]);
console.log(set.size); // 1
console.log([...set]); // ["123"]
1(或一個基元,例如強制轉換為可迭代物件的字串)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/350581.html
標籤:javascript 细绳 放
上一篇:C中的自定義連接
