【问题标题】:Get the number of subitems of an array获取数组的子项数
【发布时间】:2020-03-27 05:03:53
【问题描述】:

鉴于这两个数组:

[ {
  "0" : "e34712",
  "1" : "1768-01-19",
  "2" : "Robert Thomas",
  "3" : "Richard Morris"
}, [etc]]

[ {
  "0" : "e34712",
  "1" : "1768-01-19",
  "2" : "Robert Thomas",
  "3" : [ "William Morris; ", "Richard Morris" ]
}, [etc]]

如何获取第三个元素中的项目数,如第一个数组中的“1”和第二个数组中的“2”?如果我记录[3].length,我得到'2',正如预期的那样,第二个,虽然我得到第一个字符串的长度,即如果第三个位置只有一个项目。

我需要这样做:

result.forEach(function (record) {
                  record[3] = record[3].join('')
                })

如果记录 [3] 只有一个项目,这不起作用,所以我想添加一个“如果记录 [3] 包含多个项目,然后执行 .join,否​​则通过”。如果我这样做了

if record[3].length > 2 它还可以捕获仅包含三个或四个字符的单个字符串,这当然是我不想要的。

【问题讨论】:

  • 这真的是你的结构吗?因为它与您的 last question 不同,后者是数组数组,而不是对象数组。
  • 是的,它不同,因为我编辑了 XQuery 输出我的 JSON 的方式,以便我可以在这里实现我想要的。

标签: javascript arrays json


【解决方案1】:

您可以检查第三项是否为数组。如果是,则进行联接。如果没有,你跳过它。

result.forEach(function (record) {
  if (Array.isArray(record[3])) {
    record[3] = record[3].join('');
  }
});

【讨论】:

    猜你喜欢
    • 2020-05-06
    • 2023-02-10
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    • 2012-10-25
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多