javascript - 获取数组的子项数

标签 javascript arrays json

给定这两个数组:

[ {
  "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”?如果我执行 record[3].length ,则如预期的那样,对于第二个,我得到“2”,尽管我得到第一个的字符串长度,即,如果第三个位置只有一个项目。

我需要这样做:

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

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

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

最佳答案

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

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

关于javascript - 获取数组的子项数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60876037/

相关文章:

Javascript-如何在浏览器中加载页面时自动启用调试器

c - 从 C 中的另一个函数修改数组

javascript - ReactJS 将对象数组渲染到列表中会出现错误

arrays - 在 Golang 中创建此 JSON 对象的最佳方法

c# - 如何使用javascript点击页面上的json超链接

javascript - useLocation 抛出对象不是函数

javascript - AngularJS,ng-repeat + 过滤器从 Controller 调用

javascript - 嵌套 Node async.eachSeries

javascript - 打印对象数组的整个路径

python - 如何迭代 JSON 列表以仅查找我网站的 URL?