JSset是一種值的集合,它是唯一的,元素之間沒有順序關係。如果要將JSset轉換為數組,這裡提供了幾種方法。本文主要從以下幾個方面來詳細闡述JSset轉數組的實現。
一、從JSON轉數組
如果有一個JSON字元串,我們可以將其轉化為JSset,然後再將其轉換為數組。這裡提供一個示例:
let jsonStr = '{"name": "apple", "price": "2.99"}';
let jsonObj = JSON.parse(jsonStr);
let mySet = new Set(Object.values(jsonObj));
let myArray = Array.from(mySet);
console.log(myArray);//["apple", "2.99"]
以上代碼將JSON字元串轉換為對象,然後提取了對象的值來創建JSset,最後通過Array.from()方法將JSset轉換為數組。
二、JSON轉數組JS
在JavaScript中,我們也可以使用內置函數來直接將JSON轉換為數組。
let jsonStr = '{"name": "apple", "price": "2.99"}';
let myArray = JSON.parse(jsonStr, (key, value) => {
return typeof value === 'string' ? parseInt(value) : value;
});
console.log(myArray);//{name: "apple", price: 2.99}
這裡使用了JSON.parse()內置函數,第二個參數是轉換器函數。該轉換器函數可以檢測JSON對象的每個值,並將其轉換為需要的格式。在這個示例中,我們將字元串轉換為數字。
三、對象轉數組
如果要從一個對象中創建一個數組,可以使用Object.values()將對象中的值提取出來,然後使用Array.from()將JSset轉換為數組:
let myObj = {name: "apple", price: "2.99"};
let mySet = new Set(Object.values(myObj));
let myArray = Array.from(mySet);
console.log(myArray);//["apple", "2.99"]
四、JS數組轉數字
JavaScript中的數組可以包含數字類型的元素,我們可以使用Array.from()將JSset轉換為數字類型的數組:
let mySet = new Set([1, 2, 3]);
let myArray = Array.from(mySet, (x) => x * x);
console.log(myArray);//[1, 4, 9]
這裡使用了Array.from()內置函數來創建新的數組。第二個參數是轉換器函數,將所有元素都乘以自己。
五、JSNumber轉數組
如果要將JS數字轉換為數組,可以使用String()函數將數字轉換為字元串類型,然後使用.split()將其轉換為數組類型:
let myNum = 123;
let myStr = String(myNum);
let myArray = myStr.split("");
console.log(myArray);//["1", "2", "3"]
六、String轉數組
如果有一個字元串,我們可以使用.split()函數將其轉換為數組:
let myStr = "apple";
let myArray = myStr.split("");
console.log(myArray);//["a", "p", "p", "l", "e"]
七、Vector轉數組
在C++編程中,Vector是一種動態數組。如果要將一個Vector轉換為數組,可以使用Vector的.data()方法將其轉換為指針,然後使用Array.from()將指針轉換為數組:
vector myVector = {1, 2, 3};
int* myArray = myVector.data();
console.log(Array.from(myArray));//[1, 2, 3]
八、Map轉數組
如果有一個Map,我們可以使用Map的.entries()方法來獲取一個迭代器對象,然後通過Array.from()將其轉換為數組:
let myMap = new Map([[1, 'a'], [2, 'b'], [3, 'c']]);
let myArray = Array.from(myMap.entries());
console.log(myArray);//[[1, "a"], [2, "b"], [3, "c"]]
九、JS數組轉樹
除了將JSset轉換為數組,還可以將JS數組轉換為樹。以下是一個使用遞歸方式將JS數組轉換為樹的示例:
let myArray = [
{ id: 1, name: "fruit", parent: null },
{ id: 2, name: "apple", parent: 1 },
{ id: 3, name: "grape", parent: 1 },
{ id: 4, name: "red apple", parent: 2 },
{ id: 5, name: "green apple", parent: 2 },
{ id: 6, name: "red grape", parent: 3 },
{ id: 7, name: "green grape", parent: 3 },
];
function buildTree(elements, parentId = null) {
let result = [];
elements.forEach((element) => {
if (element.parent === parentId) {
let children = buildTree(elements, element.id);
if (children.length > 0) {
element.children = children;
}
result.push(element);
}
});
return result;
}
let myTree = buildTree(myArray);
console.log(JSON.stringify(myTree));//[{"id":1,"name":"fruit","parent":null,"children":[{"id":2,"name":"apple","parent":1,"children":[{"id":4,"name":"red apple","parent":2},{"id":5,"name":"green apple","parent":2}]},{"id":3,"name":"grape","parent":1,"children":[{"id":6,"name":"red grape","parent":3},{"id":7,"name":"green grape","parent":3}]}]}]
以上函數使用遞歸的方式生成樹結構。如果我們傳入的parentId是null,就意味著將該元素作為根節點,然後將其子節點逐個添加到子數組中,最終形成一個樹的結構。
結論
以上是JSset轉換為數組的幾種方法和JS數組轉換為樹結構的方法。這些方法可以根據具體場景進行選擇和應用,希望讀者們能夠在實際應用中得到幫助。
原創文章,作者:VEHV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/134225.html