如何在javascript中仅保留第一个元素并删除数组中的所有其他元素

39

我想从数组中删除除了第0个元素以外的所有元素

["a", "b", "c", "d", "e", "f"]

输出应该是 a


1
var output = Input[0]; - Mairaj Ahmad
3
如果你需要一个数组,可以使用 Input.slice().splice(1)。如果你不关心原始数组,可以使用 Input.splice(1) - Sebastian Simon
好的,我的需求是这样的:我需要实现一个名为“删除选项卡”的功能,它将从选项卡集合中删除除了主页选项卡(即索引为0的选项卡)以外的所有选项卡。 - shadowhunter_077
这些“tabs”实际上是一些HTML元素吗? - Teemu
可能是如何在JavaScript中从数组中删除特定元素?的重复问题。 - aledustet
我不知道,但splice(0,1)对我不起作用,它会从tabset中删除主页选项卡(在0号索引处的选项卡),这是不可取的。 - shadowhunter_077
9个回答

93

您可以设置数组的length属性。

var input = ['a','b','c','d','e','f'];  
input.length = 1;
console.log(input);

或者,使用 splice(startIndex) 方法。

var input = ['a','b','c','d','e','f'];  
input.splice(1);
console.log(input);

或者使用Array.slice方法。

var input = ['a','b','c','d','e','f'];  
var output = input.slice(0, 1) // 0-startIndex, 1 - endIndex
console.log(output); 


5
我对“input.length = 1”的解决方法感到惊讶。我认为length是只读属性 :) - Takeshi Tokugawa YD
1
每种方法的优缺点是什么?array.length=1也让我感到惊讶。 - Imbro
如何使用按值传递 - Yogi Arif Widodo

5

这是 head 函数。 tail 也作为补充函数演示。

请注意,应仅在已知长度为1或更多的数组上使用 headtail

// head :: [a] -> a
const head = ([x,...xs]) => x;

// tail :: [a] -> [a]
const tail = ([x,...xs]) => xs;

let input = ['a','b','c','d','e','f'];

console.log(head(input)); // => 'a'
console.log(tail(input)); // => ['b','c','d','e','f']


2

1

1
如果您想将其保留在一个数组中,可以使用slicesplice。或者再次包装第一个条目。

var Input = ["a","b","c","d","e","f"];  

console.log( [Input[0]] );
console.log( Input.slice(0, 1) );
console.log( Input.splice(0, 1) );


1
array = [a,b,c,d,e,f];
remaining = array[0];
array = [remaining];

2
或者只需 array = [array[0]] - Geza Kerecsenyi

0

shift()方法是实现此目的的完美选择。

var input = ['a','b','c','d','e','f'];  
let firstValue = input.shift();
console.log(firstValue);

0
var input = ["a", "b", "c", "d", "e", "f"];

[input[0]];

// ["a"]

3
嘿,你应该解释一下你的答案。你的想法是什么?在发布之前最好先完整地写出我们的答案 ;) - WolverinDEV
@WolverinDEV,你能解释一下为什么要给我点踩吗?我看到这篇帖子中有两个最佳解决方案使用了splice和slice。而我提供的解决方案所需字符最少... - Evan Grillo

-2
var output=Input[0]

如果您想在某些限制条件下进行过滤,它会打印第一个元素

var Input = [ a, b, c, d, e, a, c, b, e ];
$( "div" ).text( Input.join( ", " ) );

Input = jQuery.grep(Input, function( n, i ) {
  return ( n !== c );
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接