如何从这样的数组中获取第一个元素:
var ary = ['first', 'second', 'third', 'fourth', 'fifth'];
我试了一下:
alert($(ary).first());
但它会返回[object object]。所以我需要从数组中获取第一个元素它应该是元素first。
如何从这样的数组中获取第一个元素:
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;
}
其他回答
@NicoLwk你应该用splice删除元素,这会把你的数组移回来。所以:
var a=['a','b','c'];
a.splice(0,1);
for(var i in a){console.log(i+' '+a[i]);}
如果你的数组不能保证从索引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'
你也可以使用.get(0):
alert($(ary).first().get(0));
来获取数组的第一个元素。
为什么要对一个普通JavaScript数组进行jquery化?使用标准JavaScript!
var ary = ['first', 'second', 'third', 'fourth', 'fifth'];
alert(ary[0]);
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
同时,
来源:bobince提供
当数组下标从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'.