关于JavaScript语言,我有以下两个问题:
是否有任何方法可以在不使用push()函数或者其他内置函数的情况下向数组中追加元素?
是否有任何方法可以在不使用concat()函数或者其他内置函数的情况下将两个数组合并起来?
关于JavaScript语言,我有以下两个问题:
是否有任何方法可以在不使用push()函数或者其他内置函数的情况下向数组中追加元素?
是否有任何方法可以在不使用concat()函数或者其他内置函数的情况下将两个数组合并起来?
对于第一部分,您可以始终使用数组的长度属性来添加下一个元素:
a = ['a', 'b', 'c', 'd'];
a[a.length] = 'e';
// a is now ["a", "b", "c", "d", "e"]
这里为您提供了几种选择:
To add the item to the array without push
call:
arr[arr.length] = value;
To concatenate one array to another without concat
call:
for (var i = 0; i < arr2.length; arr1[arr1.length] = arr2[i++]);
不确定这是否是你所寻找的或原因所在,但是arr[arr.length] = 1;
是你两个问题的答案。
var myArr = [];
myArr[myArr.length] = 1;
myArr[myArr.length] = 2;
myArr[myArr.length] = 3;
var myArr1 = [...]; // has items;
var myArr2 = [...]; // has items;
var mergedArr = [];
for(var i = 0; i < myArr1.length){
mergedArr[mergedArr.length] = myArr1[i];
}
for(var i = 0; i < myArr2.length){
mergedArr[mergedArr.length] = myArr2[i];
}
arr.length = arr.length - 2
就可以了。如果你还需要最后一个元素,在这段代码之前使用 arr[arr.length - 1]
。 - Onur Topal是的,你可以使用ES6的扩展语法(...)来实现,而不需要使用.push、concat或.length方法:
var arr = [1, 2]; // arr is 1, 2
var arr = [...arr, 3]; // arr is now 1, 2, 3
let arr1 = [1, 2]; <br>
let arr2 = [3, 4]; <br>
arr = [...arr1, ...arr2]; // arr is now 1, 2, 3, 4
希望这能解决你的问题:
const addItem = (arr, ...arguments) => {
for (let i = 0; i < arguments.length; i++) {
arr[arr.length] = arguments[i];
}
return arr;
};
let myArr = [];
console.log(addItem(myArr, 'Chaewon')); // ['Chaewon'])
console.log(addItem(myArr, 'Liz')); // ['Chaewon', 'Liz']);
<html lang="en">
<head>
<script>
let data = [20, 80, 79, 21, 40];
let newEl = 26;
let position = 2;
console.log(data);
for(let i = data.length-1; i >= 0; i--){
console.log(data[i]);
if (i >= position) {
data[i + 1]= data[i];
if (i === position) {
data[i]= newEl;
}
}
}
console.log(data)
</script>
</head>
<body>
</body>
</html>
function pop(arr) {
let finalVar = arr[arr.length - 1];
arr.length = arr.length - 1;
return finalVar;
}