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

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

我试了一下:

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

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


当前回答

array.find(e => !!e);  // return the first element 

因为"find"返回第一个匹配过滤器的元素&& !!E匹配任何元素。

注意:只有当第一个元素不是“Falsy”时才有效:null, false, NaN, "", 0, undefined

其他回答

ES6 简单:

let a = []
a[7] = 'A'
a[10] = 'B'

let firstValue = a.find(v => v)
let firstIndex = a.findIndex(v => v)

你也可以使用.get(0):

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

来获取数组的第一个元素。

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

如果你想保持可读性,你可以在array . prototype中添加第一个函数:

Array.prototype.first = function () {
    return this[0];
};

A,那么你可以很容易地检索第一个元素:

[1, 2, 3].first();
> 1

我知道从其他语言学习到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