Javascript 如何在数组中填充多个数据类型?
我想填充包含对象和字符串的“标记”数组。我在obj变量中存储了另一个javascript对象,我想从中提取数据并将其存储到markers数组中。 我正在用以下代码填充数组Javascript 如何在数组中填充多个数据类型?,javascript,arrays,Javascript,Arrays,我想填充包含对象和字符串的“标记”数组。我在obj变量中存储了另一个javascript对象,我想从中提取数据并将其存储到markers数组中。 我正在用以下代码填充数组 for (i = 0; i < obj.results.bindings.length; i++) { markers[i].content = obj.results.bindings[i].placeName.value; markers[i].coords.lat = Number(obj.r
for (i = 0; i < obj.results.bindings.length; i++) {
markers[i].content = obj.results.bindings[i].placeName.value;
markers[i].coords.lat = Number(obj.results.bindings[i].lat.value);
markers[i].coords.lng = Number(obj.results.bindings[i].long.value);
}
(i=0;i
markers[i].content=obj.results.bindings[i].placeName.value;
markers[i].coords.lat=Number(obj.results.bindings[i].lat.value);
markers[i].coords.lng=Number(obj.results.bindings[i].long.value);
}
标记数组如下所示(手动填充,而不是按for循环填充)
var标记=[
{
坐标:{lat:37.8707,lng:32.5050},
内容:'Mevlana博物馆'
},
{
坐标:{lat:37.8699,lng:32.4993},
内容:“卡普卡米”
},
{
坐标:{lat:37.8749,lng:32.4931},
内容:“卡拉泰宗教学校”
},
{
坐标:{lat:37.8749,lng:32.4931},
内容:“卡拉泰宗教学校”
},
{
坐标:{lat:37.8749,lng:32.4931},
内容:“卡拉泰宗教学校”
}
];
现在,当javascript对象“obj”具有与标记元素相同数量的嵌套对象时,它可以正常工作,但当“obj”的嵌套对象多于标记元素时,数组就会出现问题。我只想将“obj”中的其余嵌套对象添加到标记中。当我在for循环中添加新元素时,为什么标记数组不自动增长?这个怎么样
数组不应动态增长。您可以使用push/pop方法
markers = [];
for (i = 0; i < obj.results.bindings.length; i++) {
markers.push({
content : obj.results.bindings[i].placeName.value,
coords : {
lat : Number(obj.results.bindings[i].lat.value),
lng : Number(obj.results.bindings[i].long.value)
}
})
}
markers=[];
对于(i=0;i
我使用下面的代码重试:
for (i = 0; i < obj.results.bindings.length; i++) {
markers[i] = {};
markers[i].content = obj.results.bindings[i].placeName.value;
markers[i].coords= {};
markers[i].coords.lat = Number(obj.results.bindings[i].lat.value);
markers[i].coords.lng = Number(obj.results.bindings[i].long.value);
}
for(i=0;i
我猜您没有将类型指定为object,所以它出错了
请让我知道这是否也有效。这个怎么样
数组不应动态增长。您可以使用push/pop方法
markers = [];
for (i = 0; i < obj.results.bindings.length; i++) {
markers.push({
content : obj.results.bindings[i].placeName.value,
coords : {
lat : Number(obj.results.bindings[i].lat.value),
lng : Number(obj.results.bindings[i].long.value)
}
})
}
markers=[];
对于(i=0;i
我使用下面的代码重试:
for (i = 0; i < obj.results.bindings.length; i++) {
markers[i] = {};
markers[i].content = obj.results.bindings[i].placeName.value;
markers[i].coords= {};
markers[i].coords.lat = Number(obj.results.bindings[i].lat.value);
markers[i].coords.lng = Number(obj.results.bindings[i].long.value);
}
for(i=0;i
我猜您没有将类型指定为object,所以它出错了
请让我知道这是否也有效。您可以使用
对象结果绑定的forEach
,然后构建所需的每个标记,并最终按如下方式推入数组
让obj={
结果:{
绑定:[
{地名:'cali',纬度:'123',长:'456'},
{地名:'夏威夷',纬度:'555',长:'333'},
{地名:'korea',拉丁语:'777',长语:'888'}]
}
};
让标记=[];
obj.results.bindings.forEach(项=>{
设mar={content:'',coords:{};
mar.content=item.placeName;
mar.coords.lat=编号(项目lat);
mar.coords.lng=编号(项目长度);
马克。推(三月)
})
console.log(markers)
您可以使用obj.results.bindings的forEach
,然后构建所需的每个标记,并最终将其推入数组,如下所示
让obj={
结果:{
绑定:[
{地名:'cali',纬度:'123',长:'456'},
{地名:'夏威夷',纬度:'555',长:'333'},
{地名:'korea',拉丁语:'777',长语:'888'}]
}
};
让标记=[];
obj.results.bindings.forEach(项=>{
设mar={content:'',coords:{};
mar.content=item.placeName;
mar.coords.lat=编号(项目lat);
mar.coords.lng=编号(项目长度);
马克。推(三月)
})
console.log(markers)
您的语句不正确,数组将动态增长。您可以尝试这样的简单测试let arr=[];arr[2]=“abc”console.log(arr)
很抱歉英语不好。我不是这个意思。我把这句话改为“不应该”。很抱歉。我知道数组在javascript中会自动增长,但我不明白为什么我的代码不起作用,不管怎样,您编写的解决方案对我来说是可行的,谢谢!您的语句不正确,数组将动态增长。您可以尝试这样的简单测试let arr=[];arr[2]=“abc”console.log(arr)
很抱歉英语不好。我不是这个意思。我把这句话改为“不应该”。很抱歉。我知道数组在javascript中会自动增长,但我不明白为什么我的代码不起作用,不管怎样,您编写的解决方案对我来说是可行的,谢谢!