請問,javascript是否有函數可判斷多階陣列的KEY值是否存在。
目前僅知道一階陣列可用 indexOf 或 hasOwnProperty。
想了一下還是只有for可以用吧
以陣列為例
let a = [[0,1],[0,2]];
let n = [];
for (let i = 0; i< a.length; i++) {
n = a[i];
console.log(~n.indexOf(0)?true:false);
}
如果是這麼簡單的話
可以直接用 flat
let arr = [[1,2],[3,4],[5,6]]
console.log(arr.flat().indexOf(1) > -1 ) // true
可是他說 key 值 好像又不是這樣
原來還有 flat
這個方法
原來還有 flat 這個方法
好像是 ES6 還是 ES7 新增的
例如:有定義一維陣列 arr['a','b','c'];
若直接 判斷是否有3維陣列的key存在 arr[1][3][1],會直接報錯
typeof( arr[1][3][1])
有沒有辦法不會報錯
如何能不報錯,直接給此KEY(array[1][3][1])不存在就好
我記得我以前的解法是,先化成object。再做判斷。
就可以用typeof處理多維不會報錯。
請問如果資料為 var array = {"A":1};
判斷 array['B']['C']['D'] 是否被定義,要怎樣而不會報錯
沒有直接的函數。一般都是搭配keys跟map來做處理的。
你可以自已寫一個來用吧。
我以前有寫過。只是現在很懶的找出去。我記得不困難。
要不然就看看有沒有佛心來的幫你寫一個來用。
用3元運算子
let test = [
1,
[2, 2],
[
[3, 3],
2
]]
let t = test[1][0][0]? test[1][0][0] : undefined
console.log(t)
下次問問題記得舉一個別人看的懂得例子。