数组中的第一个元素 – 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
也,
来源 ,彬彬有礼
如果第一个元素已被删除,则索引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”的情况: null
, false
, NaN
, ""
, 0
, undefined
你也可以使用.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'.