如何在数组中打印值 在数组中,在多个对象内
How print values in arrays in array, inside multiple objects
var data = [
{
infoType: [
[1],
[2],
[3],
]
},
{
infoType: [
[4],
[5],
[6],
]
},
{
infoType: [
[7],
[7],
[8],
]
},
{
infoType: [
[9],
[10],
[11],
]
}
]
伙计们,我有这个数据,里面有几个对象,在这个对象里面我有一个字段"infoType",我正在尝试打印所有值,但我没有得到。
我该怎么做?
我像这样尝试:
for(var i = 0; i < data.length; i++) {
data[i].infoType.forEach(function(item) {
console.log(item);
})
}
for(var i = 0; i < data.length; i++) {
for(var j = 0; i < data[i].infoType.length; i++) {
console.log(data[i].infoType[j]);
}
}
我不能为此使用 jquery。
我已经在数组中的数组之前完成了这个解决方案。 但在 C# 端用于谷歌地图标记
str.Append("<script type='text/javascript'>");
str.Append("var _arrSitesLatLang = new Array();");
StationsDataDB objSitesDB = new StationsDataDB();
DataTable dt = objSitesDB.GetBySitesIdAndDates(Request.QueryString["SId"], Request.QueryString["date"], Request.QueryString["Q"]);
for (int i = 0; i < dt.Rows.Count; i++)
{
str.Append("var arr = new Array();");
str.Append("arr.push('" + dt.Rows[i]["Station"].ToString() + "');");
string[] latlang = null;
if (!string.IsNullOrEmpty(dt.Rows[i]["LatLang"].ToString()))
{
latlang = dt.Rows[i]["LatLang"].ToString().Trim().Split(',');
str.Append("arr.push(" + latlang[0] + ");");
str.Append("arr.push(" + latlang[1] + ");");
}
str.Append("_arrSitesLatLang.push(arr);");
}
在客户端
var markers = _arrSitesLatLang;
for (i = 0; i < markers.length; i++) {
var position = new google.maps.LatLng(markers[i][1], markers[i][2]);
bounds.extend(position);
marker = new google.maps.Marker({
position: position,
map: map,
title: markers[i][0]
});
// Allow each marker to have an info window
google.maps.event.addListener(marker, 'click', (function (marker, i) {
return function () {
infoWindow.setContent(infoWindowContent[i][0]);
infoWindow.open(map, marker);
}
})(marker, i));
// Automatically center the map fitting all markers on the screen
map.fitBounds(bounds);
}
我的数组返回数据,例如 _arrSitesLatLang =
[[1,1],[1,2]] 例如。对于此类工作,还有另一种解决方案
如果您使用数组 main 并在此数组中推送对象及其属性。
$.grep function
你需要
做item[0]
item
因为也是一个长度1
数组。
for(var i = 0; i < data.length; i++) {
data[i].infoType.forEach(function(item) {
console.log(item[0]);
})
}
工作小提琴
您可以使用此代码段来展平结构:
function getValues(root, vals) {
if (root instanceof Array){
for (var i = 0; i < root.length;i++){
if (typeof root[i] == 'object')
getValues(root[i], vals);
else
vals.push(root[i]);
}
return;
}
for (var key in root){
getValues(root[key], vals);
}
}
var data = [
{
infoType: [
[1],
[2],
[3],
]
},
{
infoType: [
[4],
[5],
[6],
]
},
{
infoType: [
[7],
[7],
[8],
]
},
{
infoType: [
[9],
[10],
[11],
]
}
];
var vals = [];
getValues(data, vals);
console.log(vals);
结构扁平后,您只需将 vals 变量作为一个简单的数组进行迭代:
for (var i = 0; i< vals.length; i++){
console.log(vals[i]);
}
要打印上述结构中的所有值,并假设没有引入其他结构,您可以执行以下操作:
小提琴
for (var i = 0; i < data.length; i++) {
var obj = data[i].infoType;
for (var j =0; j < obj.length; j++) {
console.log(obj[j][0]);
}
}
这也很有帮助...要打印值...
data.map( a => a.infoType.map( b => b[0] ) ).flat()
相关文章:
- 将数组对象传递到struts2中的操作类
- 如何使用jquery返回php-json数组对象
- 从其名称获取javascript数组对象
- 值未与数组对象绑定
- 如何按数组/对象值的倍数过滤对象数组
- 在表中显示数组对象
- 在数组对象中分组
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 重新排列 JavaScript 数组/对象
- 键上的javascript数组对象过滤器
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 重建有角度的java脚本数组对象
- 对JSON数组对象进行排序
- 连接与数组对象相关的文本:方式和位置
- 哪些浏览器和版本支持将常见的类数组对象直接传递到fn.apply()
- 如何使用Handlebars循环数组对象和模板
- 是否可以引用JS数组/对象中的另一个元素
- Javascript中的名称索引-数组/对象
- 数组长度不等于数组对象