获取数组中的第一个元素

你如何从数组中获得第一个元素:

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

我试过这个:

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

但它会返回[object Object]

所以我需要从数组中获取第一个元素,它应该是元素的first元素。

像这样

 alert(ary[0]) 

为什么你jQuery-ifying一个vanilla JavaScript数组? 使用标准JavaScript!

 var ary = ['first', 'second', 'third', 'fourth', 'fifth']; alert(ary[0]); 

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array

也, 需要更多jQuery

来源 ,礼貌的bobince

如果已删除第一个元素,则索引0的元素可能不存在
在浏览器控制台中certificate:

 var a=['a','b','c']; delete a[0]; for(var i in a){console.log(i+' '+a[i]);} 

更好的方法来获得没有jQuery的第一个元素:

 function first(p){for(var i in p)return p[i];} first(a); 

如果要保留可读性 ,可以始终向Array.protoype添加第一个函数:

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

那么你可以轻松找回第一个元素:

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

您可以使用shift()方法获取第一个项目,但要小心这个方法修改原始数组(删除第一个项目并返回它)。 因此,arrays的长度减少了一个。 此方法可用于您只需要获取第一个元素的内联案例,但您不关心原始数组。

 yourArray.shift() 

使用ES6解构

 let [first] = [1,2,3]; 

哪个是一样的

 let first = [1,2,3][0]; 

如果不保证从索引零填充数组,则可以使用Array.prototype.find()

 var elements = [] elements[1] = 'foo' elements[2] = 'bar' var first = function(element) { return !!element } var gotcha = elements.find(first) console.log(a[0]) // undefined console.log(gotcha) // 'foo' 
 array.find(e => !!e); // return the first element 

因为“find”返回匹配filter的第一个元素&& !!e匹配任何元素。

注意仅当第一个元素不是“Falsy”时才有效: nullfalseNaN""0undefined

尝试alert(ary[0]);

只有你使用underscore.js( http://underscorejs.org/ ),你才能做到:

 _.first(your_array); 

使用数组的方法,它也适用于对象 (注意,对象没有保证的顺序!)。

我最喜欢这种方法,因为原始数组没有被修改。

 // In case of array var arr = []; arr[3] = 'first'; arr[7] = 'last'; var firstElement; for(var i in arr){ firstElement = arr[i]; break; } console.log(firstElement); // "first" // In case of object var obj = { first: 'first', last: 'last', }; var firstElement; for(var i in obj){ firstElement = obj[i]; break; } console.log(firstElement) // First; 

当存在多个匹配时,JQuery的.first()用于获取与给予jquery的css选择器匹配的第一个DOM元素。

你不需要jQuery来操作javascript数组。

使用filter查找数组中的第一个元素:

 function first(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(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; } 

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

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

获取数组的第一个元素。

当数组索引从零开始时,前面的示例很有效。 thomax的答案并不依赖于从零开始的索引,而是依赖于我无法访问的Array.prototype.find 。 使用jQuery $ .each的以下解决方案在我的案例中运行良好。

 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'. 

@NicoLwk您应该使用拼接删除元素,这会将您的arrays移回。 所以:

 var a=['a','b','c']; a.splice(0,1); for(var i in a){console.log(i+' '+a[i]);} 

用它来分割javascript中的字符。

 var str = "boy, girl, dog, cat"; var arr = str.split(","); var fst = arr.splice(0,1).join(""); var rest = arr.join(","); 

声明一个原型来获取第一个数组元素:

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

然后用它作为:

 var array = [0, 1, 2, 3]; var first = array.first(); var _first = [0, 1, 2, 3].first(); 

或者干脆(:

 first = array[0]; 

如果你将视图函数链接到数组,例如

array.map(i => i+1).filter(i => i > 3)

并且想要在这些函数之后的第一个元素你可以简单地添加一个.shift()它不会修改原始array ,它更好的方式是array.map(i => i+1).filter(=> i > 3)[0]

如果你想要数组的第一个元素而不修改原文,你可以使用array[0]array.map(n=>n).shift() (没有地图你会修改原文。在这种情况下顺便说一下我会建议..[0]版本。

 var ary = ['first', 'second', 'third', 'fourth', 'fifth']; console.log(Object.keys(ary)[0]); 

创建任何Object数组( req ),然后只需执行Object.keys(req)[0]来选择Object数组中的第一个键。

@thomax的答案非常好,但如果数组中的第一个元素为false或false-y(0,空字符串等),则会失败。 最好只为undefined返回true:

 const arr = []; arr[1] = ''; arr[2] = 'foo'; const first = arr.find((v) => { return (typeof v !== 'undefined'); }); console.log(first); // '' 

为什么不考虑数组可能为空的时间?

 var ary = ['first', 'second', 'third', 'fourth', 'fifth']; first = (array) => array.length ? array[0] : 'no items'; first(ary) // output: first var ary = []; first(ary) // output: no items 

ES6简单:

 let a = [] a[7] = 'A' a[10] = 'B' let firstValue = a.find(v => v) let firstIndex = a.findIndex(v => v)