Javascript 如何在数组中正确迭代并显示实际数组

Javascript 如何在数组中正确迭代并显示实际数组,javascript,arrays,Javascript,Arrays,这在我心中是一个很长时间的问题。如果我迭代一个数组,然后放入返回数组[I],默认情况下它将只显示第一个元素 迭代数组、显示其所有元素/项的更好方法是什么 下面我正在处理跳过数组[n]并显示除第n个之外的整个数组的函数 function getAllElementsButNth(array, n) { for (var i=0; i < array.length; i++) { // array.splice(0, array[n]); // return array;

这在我心中是一个很长时间的问题。如果我迭代一个数组,然后放入
返回数组[I]
,默认情况下它将只显示第一个元素

迭代数组、显示其所有元素/项的更好方法是什么

下面我正在处理跳过数组[n]并显示除第n个之外的整个数组的函数

function getAllElementsButNth(array, n) {
  for (var i=0; i < array.length; i++) {
    // array.splice(0, array[n]);
    // return array;
     if (i === n) { 
       continue; 
     }
    return array[i];
  }
}

var output = getAllElementsButNth(['a', 'b', 'c'], 1);
console.log(output); // --> ['a', 'c']
函数getAllegementsButnth(数组,n){ 对于(var i=0;i['a','c'] 我注意到使用
console.log
只会用新行显示它们。我指的是显示实际阵列本身。我在这里使用return,它只允许我显示'a'


有什么帮助吗?

您根本不需要遍历数组,也不需要为此设置函数。您只需执行以下操作:

var输出=array.splice(索引,1)

array.splice
方法有两个参数:第一个是要删除元素的索引,第二个是要删除的元素数,在您的示例中为-1

输出
将保存已删除元素的值,而初始数组将被拼接并包含除
索引
处的元素外的所有原始元素

函数getAllegementsButnth(arr,p){ 如果(p-1log(getAllegementsButnth(['a','b','c'],2))不改变原始数组的解决方案:
过滤器

var-arr=[1,2,3,4,5,6,7,8];
var指数=5;
var r=arr.filter((el,i)=>i!==索引);

console.log(r)
您可能需要使用
数组.filter

简洁易读。同样,逻辑上也适用于该问题

但是,它可能不是最有效的解决方案,因为它迭代整个数组

因此,另一种可能的(更有效的)使用es6的方法(因为已经有其他使用slice的解决方案):


您正在返回元素,因此它只记录“a”是公平的。返回array.slice,或者定义一个新数组并将元素推送到其中。另一种可能是使用array.filter当函数到达
返回数组[i]
时,它将结束。因此,结果将是不等于
n
的第一个元素。
function getAllElementsButNth(array, n) {
  return array.filter(function(e, i) {
    return i !== n;
  });
}

var output = getAllElementsButNth(['a', 'b', 'c'], 1);
console.log(output); // --> ['a', 'c']
function getAllElementsButNth(array, n) {
  return new Array(...array.slice(0, n), ...array.slice(n+1, array.length));
}