Ich möchte ein Array wie dieses erstellen. (in Alarmbereitschaft gibt es Objekt)

var playlist = [{"title":"Kalimba","mp3":"http://www.jplayer.org/audio/mp3/TSP-01-Cro_magnon_man.mp3"}];

Von:

var playlist = [];
$.ajax({
    url: 'url.php',
    data: {
        album_name: album_name
    },
    type: 'POST',
    success: function( data ) {
        var data_array = JSON.parse(data);
        for( var i=0; i<data_array.length; i++ ) {
            var value = data_array[i].split('::');
            playlist.push('{"title":"Kalimba","mp3":"http://www.jplayer.org/audio/mp3/TSP-01-Cro_magnon_man.mp3"},'); // putting the same thing just for testing.
        }
        alert(playlist);
    }
});

Jetzt schien das neue Array playlist für mich nicht zu funktionieren. Ich denke, es stimmt etwas nicht, wie ich ein Array wie oben erstelle.

-1
Hassan Ali 17 Aug. 2015 im 11:58

5 Antworten

Beste Antwort

Sie müssen ein Objekt anstelle einer Objektzeichenfolge verschieben:

playlist.push({"title":"Kalimba","mp3":"http://www.jplayer.org/audio/mp3/TSP-01-Cro_magnon_man.mp3"});
//------------^---remove the single quote.
3
Jai 17 Aug. 2015 im 09:00

Oder du kannst es so versuchen

var playlist = [];
$.ajax({
    url: 'url.php',
    data: {
        album_name: album_name
    },
    type: 'POST',
    success: function( data ) {
        var data_array = JSON.parse(data);
        for( var i=0; i<data_array.length; i++ ) {
            var value = data_array[i].split('::');
            var ArrObj = '{"title":"Kalimba","mp3":"http://www.jplayer.org/audio/mp3/TSP-01-Cro_magnon_man.mp3"},'; 
            playlist.push(ArrObj); 
        }
        alert(playlist);
    }
});
0
Himesh Aadeshara 17 Aug. 2015 im 09:04
  • Wie @Jai sagte, müssen Sie ein Objekt pushen: playlist.push({"title":"Kalimba","mp3":"http://www.jplayer.org/audio/mp3/TSP-01-Cro_magnon_man.mp3"});

  • Arrays in JavaScript sind Objekte.

  • Verwenden Sie besser die Konsole, um Ihr Javascript zu protokollieren oder zu debuggen.

  • In dieser Geige können Sie sehen dass das Array erstellt und das Objekt darauf verschoben wird, aber es ist immer noch als Objekt protokolliert.

  • Und da Sie jQuery verwenden, gibt es eine Methode isArray (), um festzustellen, ob
    etwas ist ein Array oder nicht.

1
Craicerjack 17 Aug. 2015 im 09:08

Probier diese

var playlist =[{"title":"Kalimba","mp3":"http://www.jplayer.org/audio/mp3/TSP-01-Cro_magnon_man.mp3"}];

alert(JSON.stringify(playlist));
1
dom 17 Aug. 2015 im 09:03

Verwenden Sie jQuery.map (), um ein Array zu erstellen.

playlist = $.map(data_array, function(val, i){
      splitArr = val.split('::')
      return {
        'title':splitArr[0],
        'mp3':splitArr[1]
      }
})
1
RRK 17 Aug. 2015 im 09:08