可能重复:
循环通过Json对象
{
  "data": [
    {
      "name": "Jen",
      "id": "1"
    },
    {
      "name": "Steve",
      "id": "8"
    }
  ]
}
我正在与之交互的服务器响应上述内容.
我正在尝试enter code here为For..in语句循环遍历它.
这就是我想要做的:
for (var item in response.data) {
  console.log(item.name);
}
这不起作用.什么地方出了错?
谢谢
在阅读评论后,我认为可以使用以下内容:
for (var item in response.data) {
  console.log(response.data[item].name);
}
我能够得到一份名单......
有人可以解析它的工作原理吗?
我试图在中间件函数中迭代mongoose模型中的字段.当前上下文this是模型对象本身.所以我有一个函数,其中上下文是这样的Javascript对象:
{
  lastName: 'Wilkens',
  firstName: 'Elepart',
  name: 'Elepart Wilkens',
  username: 'eK',
  bio: '<script>alert(\'this is a hack!!\')',
  _id: 53b17dd0e8c5af50c1d73bc6,
  language: 'en',
  country: 'USA',
  online: true
}
我想迭代这个对象(在当前函数中表示this).每次我尝试使用循环进行迭代时,它都会打印出看起来像内部Javascript元数据的值.this如果this代表一个对象,是否可以在函数内迭代?
这是实际的中间件功能:
userSchema.pre('save', function (next) {
    console.log(this); // This prints precisely the same object I have copied above
    var fields = Object.keys(this);
    for(var i = 0; i < fields.length; i++) {
        console.log(this[fields[i]]);
    }
    for(var key in this) {
      if(this.hasOwnProperty(key)) {
        console.log(this[key]);
      }
    }
});
输出是:
{ 
 strictMode: …我有两个对象,item而且results.他们都有相同的键,但可能有不同的值,例如:
item.id = '50'
item.area = 'Mexico'
item.gender = null
item.birthdate = null
results.id = '50'
results.area = null
results.gender = 'Male' 
results.birthdate = null
我想要做的是以下内容:
if (item.id == null || items.id == 0)
{
    item.id = results.id;
}
但我正在寻找一种方法来为我的item对象的每个值做这个.你知道,如果我的对象碰巧有更多的键/值,就不必写一个巨大的函数.有任何想法吗?
更新:我误解了我自己的问题,唯一的问题是我并没有真正理解如何在给定某个键的情况下获取对象值.因为我使用Azure的移动服务脚本,所以我无法真正使用任何外部脚本或div.
for (var key in item) {
    if(item[key] == null || item[key] == 0){
        item[key] = results[0][key] 
    }             
}
我有一个 .NET Generic Dictionary<>,我想将它传递给我在 Jint 中运行的 JavaScript 函数。
Jint 不会将 .NET Dictionary 视为可以像 Dictionary 一样对待的 JavaScript 对象。您可以访问对象上的 .NET 属性和方法,但不能访问扩展方法。
因此,虽然我可以获得字典键的数量,但我无法枚举它或对其调用 ToArray()。
我可以使用 dict[key] 从字典中读取值,但在这种情况下,我事先不知道键。
如何枚举键或获取 .NET 通用字典中的所有条目?
我愿意在字典中做一些事情或在我传递它之前转换它或弄清楚如何在 JavaScript 中做它。我宁愿不必单独传递一组键。这是在另一个数据结构中,对每个字典执行此操作会使其更加复杂,但如果找不到其他解决方案,这是我正在考虑的选项之一。
我宁愿远离使用动态。我在过去大量使用它们时遇到了内存泄漏的问题。
我知道这不是最好的方法,但我别无选择:(
我必须通过索引访问JSONObject中的项目.访问对象的标准方法是wirte this[objectName]或this.objectName.我还找到了一个方法来获取json对象中的所有字段:
(for (var key in p) { 
  if (p.hasOwnProperty(key)) { 
    alert(key + " -> " + p[key]); 
  } 
} 
(Soruce:循环通过Json对象).
但是,无法通过索引直接访问JSON字段.我现在看到的唯一方法是创建一个数组,使用上面的函数,通过索引获取fieldname,然后通过fieldname获取值.
据我所知,p(在我们的例子中,JSON文件必须是可迭代的数组,否则foreach循环将无法工作.如何直接访问此数组?或者它是某种未排序的列表?
我正在通过ajax javascript调用一个页面(ASP)来返回一个json,然后我会转到一个选择值
我回来的json属于这种类型
{
  "options": {
    "1": "All locations", 
    "2": "Egypt", 
    "3": "El Alamein", 
    "4": "Marsa matrouh", 
    "5": "Sharm el sheikh "
  }
}
要么
{
  "options": {
    "1": "All locations", 
    "2": "Abu dhabi", 
    "3": "Dubai"
  }
}
我不知道长度和包含的元素然后我会做一个循环,允许我提取值然后将插入值和标签
我正在看网,但显示的例子总是带着字段名称被召回,我无法知道不知道长度
有人可以告诉我这个骑自行车的json
我有一个看起来像这样的对象:
var myObj = {
    name:"Bacon",
    fat:20,
    carb:40
}
有没有办法在对象的键上做一个循环,然后得到它的值?
如何使用forEach循环对象?
例如:
var dataset = {
    "data" : {
        "particles" : {},
        "no2" : {},
        "timestamp" : {}
    }
};
js:
dataset.data.forEach(function(field, index) {
    console.log(field);
});
错误:
未捕获的TypeError:dataset.data.forEach不是函数
有任何想法吗?
我正在尝试将对象中的空值重写为零。
var data = {
    a : 1,
    b: 22,
    c: null,
    d: 1
};
for(var i=0; i < data.length; i++) {
    if (data[i].value === null){
        data[i].value = 0;
    }
}
我在这里缺少什么?
var object = { name: 'Harry', age: '25', sex: 'male'...... n};
这个对象有“n”个我不知道的属性,我想打印这些整个属性。