我想知道這段代碼:JavaScript數組拼接無指數
var numbers, _ref;
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
[].splice.apply(numbers, [3, 4].concat(_ref = [-3, -4, -5, -6])), _ref;
alert(numbers);
從here,結果是[0, 1, 2, -3, -4, -5, -6, 7, 8, 9]
,任何人都可以解釋我這個?
我想知道這段代碼:JavaScript數組拼接無指數
var numbers, _ref;
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
[].splice.apply(numbers, [3, 4].concat(_ref = [-3, -4, -5, -6])), _ref;
alert(numbers);
從here,結果是[0, 1, 2, -3, -4, -5, -6, 7, 8, 9]
,任何人都可以解釋我這個?
功能。適用(上下文,argsArray)調用在給定上下文功能,通過argsArray爲參數爲功能。
在這種情況下,功能是[].splice
,它採用下列參數,在該順序如下:
[3,4].concat(_ref = [-3, -4, -5, -6])
由兩個陣列串聯起來,給予[3, 4, -3, -4, -5, -6]
計算結果爲陣列。這在argsArray傳遞給.apply()
,使得:
因此.apply()
引起該.splice()
函數在numbers
數組的上下文中運行,刪除索引3,4,5和6處的元素,然後在「2」和「7」之間插入元素-3,-4,-5和-6原始數組。
編輯:請參閱RobG的答案,瞭解原始代碼的等效內容(而不是其部分的解釋)。
您的代碼解析爲以下變量聲明:
var numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
var _ref = [-3, -4, -5, -6];
而這些表情:
numbers.splice(3, 4, -3, -4, -5, -6);
_ref;
alert(numbers);
謝謝你的明確答案! – ifree
誰給了-1,照顧解釋爲什麼? –
感謝您的回答 – ifree
如果你正在尋找的是一個易於使用的功能,檢查'insertArrayAt()'在這個答案http://stackoverflow.com/a/12189963/984780 –