Javascript 在forEach函数中是否可以用数组填充两个对象?
是否可以在forEach函数中用数组填充两个对象,并将它们作为单独的变量输出?我想有一个名为geojson和geojson2的两个变量。我知道我可以复制粘贴代码,并对每个变量分别进行粘贴,但是如果我只在一个foreach函数中进行粘贴,就会更简洁。 我注释掉了下面代码中的第二个变量,因此很清楚我为第二个变量添加了什么。我尝试了该代码,但运行时出现以下错误:Javascript 在forEach函数中是否可以用数组填充两个对象?,javascript,arrays,foreach,Javascript,Arrays,Foreach,是否可以在forEach函数中用数组填充两个对象,并将它们作为单独的变量输出?我想有一个名为geojson和geojson2的两个变量。我知道我可以复制粘贴代码,并对每个变量分别进行粘贴,但是如果我只在一个foreach函数中进行粘贴,就会更简洁。 我注释掉了下面代码中的第二个变量,因此很清楚我为第二个变量添加了什么。我尝试了该代码,但运行时出现以下错误: TypeError:d.split不是一个函数 geojson = { "type": "Featu
TypeError:d.split不是一个函数
geojson = {
"type": "FeatureCollection",
"features": []
};
geojson2 = {
"type": "FeatureCollection",
"features": []
};
var dataArray = data.split(", ;");
dataArray.pop();
dataArray.forEach(function(d,e){
d = d.split(", ");
//e = e.split(", ");
var feature = {
"type": "Feature",
"properties": {}, //properties object container
"geometry": JSON.parse(d[fieldList.length]) //parse geometry
};
for (var i=0; i<fieldList.length; i++){
if ([fieldList[i].show_field] == 't') {
feature.properties[fieldList[i].field_alias] = d[i];
} else {
//feature.properties[fieldList[i].field_name] = e[i];
}
};
geojson.features.push(feature);
//geojson2.features.push(feature);
console.log(geojson);
});
geojson={
“类型”:“FeatureCollection”,
“功能”:[]
};
geojson2={
“类型”:“FeatureCollection”,
“功能”:[]
};
var dataArray=data.split(“,;”);
dataArray.pop();
forEach(函数(d,e){
d=d.拆分(“,”);
//e=e.拆分(“,”);
变量特征={
“类型”:“功能”,
“属性”:{},//属性对象容器
“geometry”:JSON.parse(d[fieldList.length])//解析几何体
};
对于(var i=0;i如果您可以提供需要从中生成的源字符串和数据对象,那么可能有一种方法可以使用正则表达式来提取所需的数据,而不是循环和拆分。
如果你想在一个循环中完成,你可以在一个循环中移动所有不重复的代码。但这仍然不太好
dataArray.forEach(function(d){
d = d.split(", ");
var feature = {
"type": "Feature",
"properties": {},
"geometry": JSON.parse(d[fieldList.length])
};
var feature2 = feature;
for (var i=0; i<fieldList.length; i++){
if ([fieldList[i].show_field] == 't') {
feature.properties[fieldList[i].field_alias] = d[i];
}
feature2.properties[fieldList[i].field_name] = d[i];
};
geojson.features.push(feature);
geojson2.features.push(feature2);
console.log(geojson);
});
dataArray.forEach(函数(d){
d=d.拆分(“,”);
变量特征={
“类型”:“功能”,
“属性”:{},
“geometry”:JSON.parse(d[fieldList.length])
};
var feature2=特征;
对于(var i=0;i如果您可以提供需要从中生成的源字符串和数据对象,那么可能有一种方法可以使用正则表达式来提取所需的数据,而不是循环和拆分。
如果你想在一个循环中完成,你可以在一个循环中移动所有不重复的代码。但这仍然不太好
dataArray.forEach(function(d){
d = d.split(", ");
var feature = {
"type": "Feature",
"properties": {},
"geometry": JSON.parse(d[fieldList.length])
};
var feature2 = feature;
for (var i=0; i<fieldList.length; i++){
if ([fieldList[i].show_field] == 't') {
feature.properties[fieldList[i].field_alias] = d[i];
}
feature2.properties[fieldList[i].field_name] = d[i];
};
geojson.features.push(feature);
geojson2.features.push(feature2);
console.log(geojson);
});
dataArray.forEach(函数(d){
d=d.拆分(“,”);
变量特征={
“类型”:“功能”,
“属性”:{},
“geometry”:JSON.parse(d[fieldList.length])
};
var feature2=特征;
对于(var i=0;i您的数据包含哪些内容?数据包含以下内容:“53.2113489999998,6.56419200000000,BurgerKing,BurgerKing,482,11,0101000020AD100000CAA8328CBB411A406A85E97B0D9B4A40,{“类型”:“点”,“坐标”:[6.564192,53.211349]},;53.218551800000000,6.5657299000000000,汉堡王,汉堡王,519,12,0101000020AD100000377AEBB24E431A40B0BD6081F99B4A40,{“类型”:“点”,“坐标”:[6.5657299,53.2185518],”
但我不认为这与数据有任何关系,因为当我在foreach
中只使用d
运行代码时,它是有效的。所以我认为这与在foreach中使用d,e
有什么关系?@zadazI不明白你在这里想要实现什么。你称为e.split()的注释行将尝试拆分一个整数(forEach的第二个参数)。我需要e
只在for循环中执行与d
完全相同的操作,我希望它执行不同的操作。如果我将`d=d.split(“”,“”;`and//e=e.split(“”,“”)
它只会给我与d
@Cobus Kruger相同的错误,所以我需要geojson=all d[I]
和geojson2=all e[I]
你的数据
变量包含什么?数据包含以下内容:“53.2113489999998,6.56419200000000,汉堡王,汉堡王,482,11,0101000020AD1000000CAA8328CBB41A406A85E97B0D9B4A40,{“类型”:“点”,“坐标”:[6.564192,53.211349]};53.218551800000000,6.56572990000000000,汉堡王,汉堡王,519,12,0101000020AD1000030AD1000037AEBB24E431A40B0BD6081F99B4A40,{“类型”:“点”,“坐标”:”[6.5657299,53.2185518]}, ;“
但我不认为它与数据有任何关系,因为当我在foreach
中只使用d
运行代码时,它就起作用了。所以我认为它与在foreach中使用d,e
有关?@zadazI不明白您在这里想要实现什么。您称为e.split()的注释行)将尝试拆分一个整数(forEach的第二个参数)。我需要e
只在for循环中执行与d
完全相同的操作,我希望它执行不同的操作。如果我将`d=d.split(“”,“”;`and//e=e.split(“”,“”)
它只会给我与d
@Cobus Kruger相同的错误,所以我需要geojson=all d[I]和geojson2=all e[I]“的
谢谢,这很有效!在我的问题的评论中,我发布了数据
包含的内容。你是指源字符串和数据对象吗?是的,我看到了数据字符串,但不确定字段列表是什么。字段列表
是我所有列名的数组。@hasnat如我在回答中所说,以及数据字符串和最终结果的示例obje您想要的ct将有助于提供最佳实践。谢谢,这很有效!在我的问题的评论中,我发布了数据
包含的内容。您是指源字符串和数据对象吗?是的,我看到了数据字符串,但不确定字段列表是什么。字段列表
是我所有列名的数组。@hasnat如我在回答中所说,您想要的数据字符串和最终结果对象的示例将有助于提供最佳实践。