我發現JavaScript陣列操作不移動,移位,推動,彈出JavaScript的頭部和尾部陣列沒有突變
但是,所有這些操作mutate數組。
有沒有一種方法可以使用這些函數而不會導致原始數據的突變?
不知怎的,我覺得閱讀數據不應該導致突變。
我發現JavaScript陣列操作不移動,移位,推動,彈出JavaScript的頭部和尾部陣列沒有突變
但是,所有這些操作mutate數組。
有沒有一種方法可以使用這些函數而不會導致原始數據的突變?
不知怎的,我覺得閱讀數據不應該導致突變。
您可以使用:
var head = arr[0];
var tail = arr.slice(1);
或者在ES6:
const [head, ...tail] = arr;
簡單和重點:-)謝謝。 – SagiSergeNadir
接受的答案是好的,但對於一個功能更強大的方法:
我d使用find,它返回第一個在謂詞中返回true-thy值的元素。
如果你確定你的價值觀是真實的,你的,你可以按如下寫:
arr.find(Boolean)
如果你想第一個值,而不管其價值的,可以如下寫:
arr.find(_ => true)
正如其他狀態時,請使用切片
arr.slice(1);
我會做使用ES6如上
const head = ([h]) => h;
const tail = ([, ...t]) => t;
const arr = [1,2,3,4,5];
alert(head(arr));
你的意思是訪問索引?像'var test = [1,2,3,4]; var a = test [test.length - 1]'現在哪個'a'有最後一個元素? – JosephGarrone
尾巴不是最後一個元素。索引器很容易。但我想編碼沒有索引器,只需訪問數組的頭部/尾部。 –
不應該改變陣列的'push'應該做什麼? – JJJ