如何从这样的数组中获取第一个元素:

var ary = ['first', 'second', 'third', 'fourth', 'fifth'];

我试了一下:

alert($(ary).first());

但它会返回[object object]。所以我需要从数组中获取第一个元素它应该是元素first。


当前回答

使用过滤器查找数组中的第一个元素:

在打字稿:

function first<T>(arr: T[], filter: (v: T) => boolean): T {
    let result: T;
    return arr.some(v => { result = v; return filter(v); }) ? result : undefined;
}

在纯javascript中:

function first(arr, filter) {
    var result;
    return arr.some(function (v) { result = v; return filter(v); }) ? result : undefined;
}

类似地,indexOf:

在打字稿:

function indexOf<T>(arr: T[], filter: (v: T) => boolean): number {
    let result: number;
    return arr.some((v, i) => { result = i; return filter(v); }) ? result : undefined;
}

在纯javascript中:

function indexOf(arr, filter) {
    var result;
    return arr.some(function (v, i) { result = i; return filter(v); }) ? result : undefined;
}

其他回答

当数组下标从0开始时,前面的示例工作得很好。thomax的答案并不依赖于从0开始的索引,而是依赖于我没有访问权限的Array.prototype.find。下面的解决方案使用jQuery $。对我来说,每一种都很有效。

let haystack = {100: 'first', 150: 'second'},
    found = null;

$.each(haystack, function( index, value ) {
    found = value;  // Save the first array element for later.
    return false;  // Immediately stop the $.each loop after the first array element.
});

console.log(found); // Prints 'first'.
var ary = ['first', 'second', 'third', 'fourth', 'fifth'];

console.log(Object.keys(ary)[0]);

创建任意对象数组(req),然后简单地执行Object.keys(req)[0]来选择对象数组中的第一个键。

var ary = ["first", "second", "third", "fourth", "fifth"];
console.log(ary.shift());
//first
cosnole.log(ary);
// ["second", "third", "fourth", "fifth"]

我知道从其他语言学习到JavaScript的人,会寻找head()或first()来获取数组的第一个元素,但你怎么做呢?

假设你有如下数组:

const arr = [1, 2, 3, 4, 5];

在JavaScript中,你可以简单地做:

const first = arr[0];

或者一种更整洁、更新的方式是:

const [first] = arr;

但你也可以简单地写一个函数…

function first(arr) {
   if(!Array.isArray(arr)) return;
   return arr[0];
}

如果使用下划线,有一个函数列表做相同的事情,你正在寻找:

_.first 

_.head

_.take

只需使用ary.slice(0,1).pop();

In

var ary =[’first’,’second’,’third’’fourth’、’fifth’]; 游戏机。log(1º”+ ary slice(0.1)。pop ()); “2º”游戏机。log (+ ary slice(0.2)。pop ()); 游戏机。log(“3º”+ ary slice(0.3)。pop ()); 游戏机。log(“4º”+ ary slice(0.4)。pop ()); “5º”游戏机。log (+ ary slice(0.5)。pop ()); 游戏机log(“最后”+ ary。slice (- 1) pop ());

array.slice(START,END).pop();