展平陣列
如需將 array 轉換為一組行(即執行展平操作),請使用 unnest 運算子。unnest 獲取乙個 array,然後返回乙個表,array 中的每個元素均佔該錶的一行。
由於 unnest 破壞了 array 元素的順序,您可能需要恢復表中的順序。為此,請使用可選的 with offset 子句返回另乙個包含各陣列元素偏移量的列,然後使用 order by 子句按偏移量對行進行排序。
示例
select *
from unnest(['foo', 'bar', 'baz', 'qux', 'corge', 'garply', 'waldo', 'fred'])
as element
with offset as offset
order by offset;
+----------+--------+
| element | offset |
+----------+--------+
| foo | 0 |
| bar | 1 |
| baz | 2 |
| qux | 3 |
| corge | 4 |
| garply | 5 |
| waldo | 6 |
| fred | 7 |
+----------+--------+
with sequences as
(select 1 as id, [0, 1, 1, 2, 3, 5] as some_numbers
union all select 2 as id, [2, 4, 8, 16, 32] as some_numbers
union all select 3 as id, [5, 10] as some_numbers)
select id, flattened_numbers
from sequences, sequences.some_numbers as flattened_numbers;
+------+-------------------+
| id | flattened_numbers |
+------+-------------------+
| 1 | 0 |
| 1 | 1 |
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 5 |
| 2 | 2 |
| 2 | 4 |
| 2 | 8 |
| 2 | 16 |
| 2 | 32 |
| 3 | 5 |
| 3 | 10 |
+------+-------------------+
實現乙個可控深度的展平陣列函式(阿里筆試)
陣列是可多層巢狀,給定乙個陣列預設展開層數為1 陣列按照輸入層數展開,需要將改方法變為陣列的原型方法,實現的demo如下 var arr1 1,2,3 console.log arr1.flatarr 1,2,3 var arr2 1,2,3,4 console.log arr2.flatarr 1...
js巢狀陣列展平和判斷陣列方法
1.instanceoffunction isarray arr instanceof 只能用來判斷兩個物件是否屬於例項關係,而不能判斷乙個物件例項具體屬於哪種型別。其中的缺陷就是 instanceof對於frame跨域會有問題 2.constructorfunction isarray arr 函...
三 陣列 PHP全域性陣列
php全域性陣列 php全域性陣列 1.server全域性陣列 3.cookie全域性陣列 4.env全域性陣列 echo echo 獲取伺服器名稱 env hostname echo 獲取系統shell env shell 5.request全域性陣列 6.session全域性陣列 7.files...