Javascript 为array.push()中的对象指定名称
在代码的一部分中,我从JSON文件中提取数据,并将其放入基于对象的数组中 我成功地接收到数据,并且可以将每个数据放在阵列中的单个对象上。唯一的问题是,我想给每个对象命名Javascript 为array.push()中的对象指定名称,javascript,jquery,arrays,json,object,Javascript,Jquery,Arrays,Json,Object,在代码的一部分中,我从JSON文件中提取数据,并将其放入基于对象的数组中 我成功地接收到数据,并且可以将每个数据放在阵列中的单个对象上。唯一的问题是,我想给每个对象命名 var播放列表\u数据={ “音乐1”:{ “soundcloud”:“soundcloud音乐1”, “spotify”:“spotify音乐1” }, “音乐2”:{ “soundcloud”:“soundcloud音乐2”, “spotify”:“spotify音乐2” }, “音乐3”:{ “soundcloud”:“
var播放列表\u数据={
“音乐1”:{
“soundcloud”:“soundcloud音乐1”,
“spotify”:“spotify音乐1”
},
“音乐2”:{
“soundcloud”:“soundcloud音乐2”,
“spotify”:“spotify音乐2”
},
“音乐3”:{
“soundcloud”:“soundcloud音乐3”,
“spotify”:“spotify音乐3”
},
“音乐4”:{
“soundcloud”:“soundcloud音乐4”,
“spotify”:“spotify音乐4”
}
};
var-links=[];
$。每个(播放列表\数据、函数(索引、元素){
links.push({
spotify:element.spotify,
soundcloud:element.soundcloud,
});
});
控制台日志(链接)代码>
您可以使用如下代码命名每个obj
var playlist_data = {
"Music1": {
"soundcloud": "Soundcloud Music 1",
"spotify": "Spotify Music 1"
},
"Music2": {
"soundcloud": "Soundcloud Music 2",
"spotify": "Spotify Music 2"
},
"Music3": {
"soundcloud": "Soundcloud Music 3",
"spotify": "Spotify Music 3"
},
"Music4": {
"soundcloud": "Soundcloud Music 4",
"spotify": "Spotify Music 4"
}
};
var links = [];
$.each(playlist_data, function(index, element) {
links.push({
spotify: element.spotify,
soundcloud: element.soundcloud,
});
});
let myMusic = {};
for(let x = 0 ; x < links.length ; x++)
{
let z = Number(x+1);
myMusic["music"+z] = links[x];
}
console.log(myMusic.music1);
var播放列表\u数据={
“音乐1”:{
“soundcloud”:“soundcloud音乐1”,
“spotify”:“spotify音乐1”
},
“音乐2”:{
“soundcloud”:“soundcloud音乐2”,
“spotify”:“spotify音乐2”
},
“音乐3”:{
“soundcloud”:“soundcloud音乐3”,
“spotify”:“spotify音乐3”
},
“音乐4”:{
“soundcloud”:“soundcloud音乐4”,
“spotify”:“spotify音乐4”
}
};
var-links=[];
$。每个(播放列表\数据、函数(索引、元素){
links.push({
spotify:element.spotify,
soundcloud:element.soundcloud,
});
});
让我的音乐={};
for(设x=0;x
因为您似乎想使用spotify
作为链接的键
JS中有两种类型的数组:
标准阵列是:[]
关联数组,它是:{}
正如您所看到的,您可以使用{}
,它在javascript中也作为一个数组作为一个对象。然后您可以使用spotify
作为键。
因此,您的代码如下所示:
var links = {};
$.each(playlist_data, function(index, element) {
links[index] = {
spotify: element.spotify,
soundcloud: element.soundcloud,
};
});
console.log(links_s.Music1.spotify) // Spotify Music 1
由于Javascript不支持命名索引,因此必须将链接
作为对象,以便通过links.Music2.spotify
访问其属性。这是很容易做到的,但是,它只会提供与开始时完全相同的数据:
var播放列表\u数据={
“音乐1”:{
“soundcloud”:“soundcloud音乐1”,
“spotify”:“spotify音乐1”
},
“音乐2”:{
“soundcloud”:“soundcloud音乐2”,
“spotify”:“spotify音乐2”
},
“音乐3”:{
“soundcloud”:“soundcloud音乐3”,
“spotify”:“spotify音乐3”
},
“音乐4”:{
“soundcloud”:“soundcloud音乐4”,
“spotify”:“spotify音乐4”
}
};
var-links={};
$。每个(播放列表\数据、函数(索引、元素){
链接[索引]={
spotify:element.spotify,
soundcloud:element.soundcloud,
};
});
控制台日志(链接);
console.log(links.Music2.spotify)
无法命名数组中的元素,因此需要使用对象。然而,您又回到了与JSON完全相同的数据结构,因此您的循环是完全相同的redundant@RoryMcCrossan是的,没错。但是主json文件要比这个长得多,包含各种数据。所以我想用特定的数据制作一个较小的主json版本