wake-up-neo.com

Holen Sie sich das erste Element im Array

Wie erhält man das erste Element aus einem Array:

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

Ich habe das versucht:

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

Aber es würde [object Object] zurückgeben. 

Also muss ich das erste Element aus dem Array holen, das das Element first sein sollte.

143
MacMac

so was

alert(ary[0])
248
John Hartsock

Warum sind Sie ein Java-Array von Vanilla? Verwenden Sie Standard-JavaScript!

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

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

Ebenfalls,  needs more jQuery

Quelle , mit freundlicher Genehmigung von bobince

183
Matt Ball

Element mit Index 0 ist möglicherweise nicht vorhanden, wenn das erste Element gelöscht wurde
Beweisen Sie es in Ihrer Browser-Konsole:

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

Besser kann man das erste Element ohne jQuery bekommen:

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

Wenn Sie die Readability beibehalten möchten, können Sie dem Array.protoype immer eine erste Funktion hinzufügen:

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

Dann könnten Sie leicht das erste Element abrufen:

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

Sie können die shift () -Methode verwenden, um das erste Element abzurufen. Seien Sie jedoch vorsichtig, dass diese Methode das ursprüngliche Array ändert (das erste Element wird entfernt und zurückgegeben). Daher wird die Länge eines Arrays um eins reduziert. Diese Methode kann in Inline-Fällen verwendet werden, in denen Sie nur das erste Element abrufen müssen, sich aber nicht um das ursprüngliche Array kümmern. 

yourArray.shift()
40
Selay

Verwenden der ES6-Destrukturierung

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

Welches ist das Gleiche wie

let first = [1,2,3][0];
23
Flavien Volken

Wenn es nicht garantiert ist, dass Ihr Array über den Index null gefüllt wird, können Sie Array.prototype.find() verwenden:

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

da "find" das erste Element zurückgibt, das dem Filter && !!e entspricht, mit irgendeinem Element übereinstimmt.

Hinweis Dies funktioniert nur, wenn das erste Element keine "falsche" ist: null, false, NaN, "", 0, undefined

11
Abdennour TOUMI

Versuchen Sie es mit alert(ary[0]);.

9
thejh

Nur wenn Sie Underscore.js ( http://underscorejs.org/ ) verwenden, können Sie Folgendes tun:

_.first(your_array);
7
pastullo

Methode, die mit Arrays arbeitet, und sie funktioniert mit Objekten (Achtung, Objekte haben keine garantierte Reihenfolge!).

Ich bevorzuge diese Methode am meisten, da das ursprüngliche Array nicht geändert wird.

// 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;
5

Wenn mehrere Übereinstimmungen vorhanden sind, wird mit .first () von JQuery das erste DOM-Element abgerufen, das mit dem css-Selektor für jquery übereinstimmt. 

Sie brauchen jQuery nicht, um Javascript-Arrays zu bearbeiten.

4
letronje

Suchen Sie das erste Element in einem Array mithilfe eines Filters:

function first<T>(arr: T[], filter: (v: T) => boolean): T {
    let result: T;
    return arr.some(v => { result = v; return filter(v); }) ? result : undefined;
}

Im einfachen Javascript:

function first(arr, filter) {
    var result;
    return arr.some(function (v) { result = v; return filter(v); }) ? result : undefined;
}

Und in ähnlicher Weise indexOf:

In TypeScript:

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

Im einfachen Javascript:

function indexOf(arr, filter) {
    var result;
    return arr.some(function (v, i) { result = i; return filter(v); }) ? result : undefined;
}
4
Corey Alix

Sie können auch .get (0) verwenden:

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

Um das erste Element des Arrays abzurufen.

2

Ich weiß, dass Leute, die aus anderen Sprachen zu JavaScript kommen, nach etwas wie head() oder first() suchen, um das erste Element eines Arrays abzurufen, aber wie können Sie das erreichen?

Stellen Sie sich vor, Sie haben das folgende Array:

const arr = [1, 2, 3, 4, 5];

In JavaScript können Sie einfach Folgendes tun:

const first = arr[0];

oder ein ordentlicher, neuerer Weg ist:

const [first] = arr;

Sie können aber auch einfach eine Funktion mögen ...

function _first(arr) {
   if(!Array.isArray(arr)) return;
   return arr[0];
}

Wenn Sie Unterstriche verwenden, gibt es eine Liste von Funktionen, die dasselbe tun, nach dem Sie suchen:

_.first 

_.head

_.take
2
Alireza

In ES2015 und höher unter Verwendung der Array-Destrukturierung:

const arr = [42, 555, 666, 777]
const [first] = arr
console.log(first)

2
Vik

Sie können einfach Folgendes tun:

let first = array.find(() => true);

Oder wenn Sie sich nur für wahrheitsgemäße Elemente interessieren:

let first = array.find(e => e);

Pflege von Lesbarkeit während sich nicht auf numerische Vorkommnisse stützen Ich habe eine first()- -Funktion zu Array.protoype hinzugefügt, indem ich sie mit Object​.define​Property() definiere, wodurch die Gefahren von mindert Ändern des eingebauten Array-Objektprototyps direkt ( hier erklärt ).

Die Leistung ist ziemlich gut (find() stoppt nach dem ersten Element), aber sie ist nicht perfekt oder allgemein zugänglich (nur ES6). Weitere Hintergrundinformationen finden Sie unter @Selays answer .

Object.defineProperty(Array.prototype, 'first', {
  value() {
    return this.find(() => true);     // or this.find(e => e)
  }
});

Dann können Sie das erste Element abrufen:

let array = ['a', 'b', 'c'];
array.first();

> 'a'

Ausschnitt, um es in Aktion zu sehen:

Object.defineProperty(Array.prototype, 'first', {
  value() {
    return this.find(() => true);
  }
});

console.log( ['a', 'b', 'c'].first() );
2
MiXT4PE

Die vorherigen Beispiele funktionieren gut, wenn der Arrayindex bei Null beginnt. Antwort von thomax stützte sich nicht auf den Index, der bei Null beginnt, sondern stützte sich auf Array.prototype.find, auf den ich keinen Zugriff hatte. Die folgende Lösung mit jQuery $ .each hat in meinem Fall gut funktioniert.

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

Warum sollten Sie nicht berücksichtigen, wann Ihr Array leer sein könnte?

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
1
NathanQ

Sie können dies einfach durch - lodash_.head tun.

var arr = ['first', 'second', 'third', 'fourth', 'fifth'];
console.log(_.head(arr));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

1
Yi-Ting Liu

Ein weiterer für diejenigen, die sich nur mit wahren Elementen befassen

ary.find(Boolean);
1
Vinnie
var ary = ['first', 'second', 'third', 'fourth', 'fifth'];

console.log(Object.keys(ary)[0]);

Erstellen Sie ein beliebiges Object-Array (req) und wählen Sie dann einfach Object.keys(req)[0] aus, um den ersten Schlüssel im Object-Array auszuwählen.

0
Anuga

Wenn Sie eine Ansicht mit dem Array verketten, z.

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

Und wollen Sie das erste Element nach diesen Funktionen, können Sie einfach ein .shift() hinzufügen. Es ändert nicht das ursprüngliche array. Es ist eine schönere Art als array.map(i => i+1).filter(=> i > 3)[0].

Wenn Sie das erste Element eines Arrays ohne Änderung des Originals verwenden möchten, können Sie array[0] oder array.map(n=>n).shift() (ohne die Map ändern Sie das Original. In diesem Fall würde ich übrigens die ..[0]-Version vorschlagen.

0

Verwenden Sie diese Funktion, um ein Zeichen in Javascript zu teilen.

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

Deklarieren Sie einen Prototyp für das Elementfirst arrayals

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

Dann verwenden Sie es als:

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

Oder einfach (:

first = array[0];
0
ozhanli
var ary = ['first', 'second', 'third', 'fourth', 'fifth'];
alert(Object.values(ary)[0]);
0
Merak Marey

Benutze einfach ary.slice(0,1).pop();

Im

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

console.log("1º "+ary.slice(0,1).pop());
console.log("2º "+ary.slice(0,2).pop());
console.log("3º "+ary.slice(0,3).pop());
console.log("4º "+ary.slice(0,4).pop());
console.log("5º "+ary.slice(0,5).pop());
console.log("Last "+ary.slice(-1).pop());

array.slice (START, END) .pop ();

0
Guilherme HS

Die Antwort von @thomax ist ziemlich gut, schlägt jedoch fehl, wenn das erste Element im Array falsch oder falsch-y ist (0, leere Zeichenfolge usw.). Es ist besser, für etwas anderes als undefined true zurückzugeben:

const arr = [];
arr[1] = '';
arr[2] = 'foo';

const first = arr.find((v) => { return (typeof v !== 'undefined'); });
console.log(first); // ''
0
derikb

@NicoLwk Sie sollten Elemente mit Spleißen entfernen, wodurch Ihr Array zurück verschoben wird. So: 

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