数组中的第一个元素 – jQuery

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

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

我试过这个:

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

但它会返回[object Object]

所以我需要从数组中的第一个元素应该是第一个元素。

喜欢这个

 alert(ary[0]) 

为什么你jQuery的 – 如果一个香草JavaScript数组? 使用标准的JavaScript!

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

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

也, 需要更多的jQuery

来源 ,彬彬有礼

如果第一个元素已被删除,则索引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()方法获取第一个项目,但要谨慎,这种方法修改原始数组(删除第一个项目并返回它)。 因此数组的长度减less一个。 这种方法可以用在你只需要获取第一个元素的内联情况下,但是你不关心原始数组。

 yourArray.shift() 

如果您的数组不能保证从索引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' 

尝试alert(ary[0]);

只有在你使用underscore.js( http://underscorejs.org/ )的情况下,你可以这样做:

 _.first(your_array); 

当有多个匹配时,JQuery的.first()用于获取匹配给jQuery的cssselect器的第一个DOM元素。

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

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

 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; } 

与数组一起工作的方法,它也可以处理对象 (注意,对象没有保证的顺序!)。

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

 // 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; 
 array.find(e => !!e); // return the first element 

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

注意这仅适用于第一个元素不是“Falsy”的情况: nullfalseNaN""0undefined

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

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

获取数组的第一个元素。

@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]; 

如果你链接视图function的数组例如

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() (没有地图,你将修改原来的。在这种情况下,顺便说一句,我会build议..[0]版本。

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

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

你也可以使用这个开源的数组优先组件来获得任何Javascript数组的第一个元素。

例子:

 first([1, 2, 3]) // => 1 first(['a', 'b', 'c']) // => 'a' 

你也可以试试这个NPM包 。

@thomax的答案相当不错,但如果数组中的第一个元素为false或false-y(0,空string等),将会失败。 更好的只是返回true而不是undefined:

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

前面的例子在数组索引从零开始时工作得很好。 thomax的答案并不依赖于从零开始的索引,而是依赖于我没有访问的Array.prototype.find 。 下面的解决scheme使用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'.