如何在没有任何内置函数的情况下将元素添加到数组中
How to add an element to an array without any built in functions
因此,考虑到JavaScript语言,我有以下两个问题:
-
有没有任何方法可以在不使用push()函数或该语言中任何其他内置函数的情况下附加到数组?
-
有没有任何方法可以在不使用concat()函数或该语言中任何其他内置函数的情况下将两个数组合并在一起?
对于第一部分,您可以始终使用数组的length属性来添加下一个元素:
a = ['a', 'b', 'c', 'd'];
a[a.length] = 'e';
// a is now ["a", "b", "c", "d", "e"]
要完成后一个操作,合并数组,而不需要一个函数,你只需在数组中循环,应该选择最大的一个进行循环。但是,是的,正如注释所说。这样做通常没有充分的理由。
以下是您的替代方案:
-
要在不调用
push
的情况下将项目添加到阵列中,请执行以下操作:arr[arr.length] = value;
-
在不调用
concat
的情况下将一个数组连接到另一个数组: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];
}
是的,您可以在不使用.push、concat或.length的情况下执行此操作。ES6允许使用排列语法(…):
var arr = [1, 2]; // arr is 1, 2
var arr = [...arr, 3]; // arr is now 1, 2, 3
let arr1 = [1, 2];
let arr2 = [3, 4];
arr = [...arr1, ...arr2]; // arr is now 1, 2, 3, 4
function pop(arr) {
let finalVar = arr[arr.length - 1];
arr.length = arr.length - 1;
return finalVar;
}
我希望这能解决你的问题:
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>
相关文章:
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何在不传递此信息的情况下查找被调用的元素
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 如何在不影响其他元素的情况下扩展DIV
- 在不移动内部文本的情况下缩放元素的效果
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 如何在没有回调的情况下获取有关元素的信息
- Ajax:只在元素存在的情况下调用Ajax
- 是否可以在不重新渲染的情况下显示/隐藏父对象中的元素
- jQuery-如何在给定延迟的情况下从元素中删除类
- 在不引用文档的情况下使用AngularJS获取元素
- JavaScript-在不影响索引的情况下将元素插入数组
- 如何在不使用multipleparent()调用的情况下找到(元素表的)第一个祖先
- 是否可以在不创建svg对象的情况下创建捕捉元素?[snap.svg]
- 在没有大量回调函数的情况下在列表元素上循环播放同一动画
- 在不使用sort()的情况下获取HTML LI元素的副本
- 如何在不使用任何 html 输入/搜索元素的情况下读取本地客户端文本文件
- 如何在不丢失格式的情况下连续淡入() 元素文本的每个字符,包括嵌套元素
- 如何在不创建新元素的情况下修改 DOM 元素的位置
- 在不使用 CSS 的情况下,将元素与浏览器屏幕顶部保持设定的距离