【问题标题】:Javascript Append JSON ObjectsJavascript 附加 JSON 对象
【发布时间】:2018-08-03 02:17:16
【问题描述】:

如何在迭代 for 循环时附加 类似 JSON 的结构

例如(伪代码):

var i;
for (i = 0; i < clients.length; i++) { 
    date = clients.date;
    contact = clients.contact;
}

我的主要目标是附加尽可能多的组:日期和联系人,因为 clients.length 数据持有。

我需要每个循环迭代来创建如下所示的日期和联系人组的多个索引。我的总体目标是通过我的 for 循环创建如下所示的数据结构。

假设我只使用字符串:“日期”和“联系人”

 var data = [
    {
        "Date": "2015-02-03",
        "Contact": 1
    },
    {
        "Date": "2017-01-22",
        "Contact": 2

    }
];

【问题讨论】:

  • 为什么不直接创建一个对象数组然后使用 JSON.stringify - 你的伪代码的问题是它不能解释任何事情
  • 这是个好主意,但我如何将每个字符串化值附加到数组中。那会给我与数据变量相同的结构吗?
  • 你不会......你创建一个对象数组,然后在完成后对其进行字符串化 - 显然你有一个现有的对象,例如:clients = [ { date:'2015-02-03', contact: 1 },{ date:'2017-01-22', contact: 2 } ]; 所以很简单result = JSON.stringify(clients.map(({date, contact}) =&gt; ({Date:date, Contact:contact})))
  • @nil 你能发布clients数组的数据吗?

标签: javascript arrays json


【解决方案1】:
var data = []

function Client(date, contact) {
      this.date = date
      this.contact = contact
}

clients = new Array();

for (i = 0; i < 4; i++) {
    clients.push(new Client("2018-08-0" + i, i))
}

for (i = 0; i < clients.length; i++) {
    var dict = {}
    dict['Date'] = clients[i].date
    dict['Contact'] = clients[i].contact
    data[i] = dict
}

console.log(data)

【讨论】:

  • 正是我想要的。
【解决方案2】:

这是一个简单的推送对象到数组操作。请在下面尝试

var data=[];

var i;
for (i = 0; i < clients.length; i++) { 
  data.push({
    date:clients.date,
    contact:clients.contact
  });
}

【讨论】:

    【解决方案3】:

    (ES6) 你可以使用 map 函数来提取你想要的数据,然后将其转换为 json。

    let clients = [{date:"", contact:"", otherstuff:""}, {date:"", contact:"", otherstuff:""}]
    let clientsMapped = clients.map(client => ({Date:client.date, Contact:client.contact}))
    let yourJson = JSON.stringify(clientsMapped)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-12
      • 1970-01-01
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多