Javascript 在forEach函数中是否可以用数组填充两个对象?

Javascript 在forEach函数中是否可以用数组填充两个对象?,javascript,arrays,foreach,Javascript,Arrays,Foreach,是否可以在forEach函数中用数组填充两个对象,并将它们作为单独的变量输出?我想有一个名为geojson和geojson2的两个变量。我知道我可以复制粘贴代码,并对每个变量分别进行粘贴,但是如果我只在一个foreach函数中进行粘贴,就会更简洁。 我注释掉了下面代码中的第二个变量,因此很清楚我为第二个变量添加了什么。我尝试了该代码,但运行时出现以下错误: TypeError:d.split不是一个函数 geojson = { "type": "Featu

是否可以在forEach函数中用数组填充两个对象,并将它们作为单独的变量输出?我想有一个名为geojson和geojson2的两个变量。我知道我可以复制粘贴代码,并对每个变量分别进行粘贴,但是如果我只在一个foreach函数中进行粘贴,就会更简洁。 我注释掉了下面代码中的第二个变量,因此很清楚我为第二个变量添加了什么。我尝试了该代码,但运行时出现以下错误:
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如我在回答中所说,您想要的数据字符串和最终结果对象的示例将有助于提供最佳实践。