迭代Javascript对象

Iterate over Javascript object

本问题已经有最佳答案,请猛点这里访问。

我有一个javascript对象

1
2
3
4
5
6
7
8
9
10
11
12
var a = {
   "tag1":"Stocks",
   "acctType1":"individual",
   "compare1":"contains",
   "match_name1":"scrapedaccounttype",
   "text1":"dog",
   "tag2":"Stocks",
   "acctType2":"individual",
   "compare2":"contains",
   "match_name2":"scrapedaccounttype",
   "text2":"cat"
}

我需要使用这个javascript对象来做更多的计算,但是我不确定如何迭代javascript对象。

我可以有任意数量的标记(tag1, tag2, tag3, tag4 ... )或类似的其他键,比如(acctType1, acctType2, acctType3.... ),所以我需要逐个迭代它们,并进行一些操作,以便在不同的函数中使用这些变量。

同时,对于每一个都有助于我在这里的事业。注意,我可以有任何数量的tags(tag1,tag2...)comapare(compare1, compare2, compare3..)

我需要单独处理它们。


你所拥有的不是JSON。它是一个定义对象文本的JavaScript,通常称为JS对象。JSON(javascript对象表示法)是一个字符串,可以通过解析产生一个对象文本。

对于JS对象(具有丰富的联机文档),可以通过以下方式迭代对象键:

1
2
3
4
5
var a={"tag1":"Stocks","acctType1":"individual","compare1":"contains","match_name1":"scrapedaccounttype","text1":"dog","tag2":"Stocks","acctType2":"individual","compare2":"contains","match_name2":"scrapedaccounttype","text2":"cat"}

Object.keys(a).forEach(function (k) {
  console.log(a[k]);
});

或:

1
2
3
4
5
for (var key in a) {
  if (a.hasOwnProperty(key)) {
    console.log(a[k]);
  }
}