迭代Javascript对象[重复]

Posted

技术标签:

【中文标题】迭代Javascript对象[重复]【英文标题】:Iterate over Javascript object [duplicate] 【发布时间】:2014-04-16 12:25:06 【问题描述】:

我有一个 javascript 对象

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..)

我需要单独处理所有这些。

【问题讨论】:

你搜索的不多吧? 我已经看到这个问题混淆了语法兄弟:) @rahul888 搜索您的问题的标题会带来 许多 个其他问题。如果您对其中一个感到困惑,请寻找其他的... “我有一个 Json 对象或字符串” - No you don't,你有一个对象。所有 JSON 都是字符串,您的问题中没有 JSON。 为您整理了一下,为您的问题感到自豪,您可能会得到更好的答复。 【参考方案1】:

你所拥有的不是 JSON。它是 JavaScript 定义了一个Object literal,通常称为 JS 对象。 JSON(JavaScript Object Notation)是一个字符串,可以被解析以产生一个对象字面量。

对于您的 JS 对象(具有 ample online documentation),您可以通过以下方式遍历对象键:

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]);
);

或者:

for (var key in a) 
  if (a.hasOwnProperty(key)) 
    console.log(a[k]);
  

【讨论】:

我推荐后一种选择

以上是关于迭代Javascript对象[重复]的主要内容,如果未能解决你的问题,请参考以下文章

jQuery基础入门

无法遍历我的数组/对象。 Javascript,React Native [重复]

Javascript数组显示不是数组错误[重复]

有啥用?和:[重复]

For循环:通过字符迭代 - Javascript [重复]

JavaScript - 对象