JavaScript:按键选择旧数组并重命名新数组中的键

标签 javascript arrays lodash each

我有一个对象数组,我想从键 viewerId 的值中“挑选”一个新数组。我还想将 viewerId 键的名称更改为 userId。这是我用 lodash 所做的:

const viewerList = [{
    "id": 1,
    "viewerId": 5,
    "status": true
  },
  {
    "id": 2,
    "viewerId": 8,
    "status": true
  },
  {
    "id": 3,
    "viewerId": 6,
    "status": true
  },
  {
    "id": 4,
    "viewerId": 9,
    "status": true
  }
]

var result = []
_.each(viewerList, (o) => {
  result.push(_.pick(o, 'viewerId'))
})

result = result.map(function(item) {
  return {
    userId: item.viewerId
  }
});

console.log(result)
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.10/lodash.min.js"></script>

我分两步进行。这可以优化吗?

最佳答案

您可以在一条语句中执行以下操作:

const viewerList = [{
    "id": 1,
    "viewerId": 5,
    "status": true
  },
  {
    "id": 2,
    "viewerId": 8,
    "status": true
  },
  {
    "id": 3,
    "viewerId": 6,
    "status": true
  },
  {
    "id": 4,
    "viewerId": 9,
    "status": true
  }
]

// The same logic in a single statement
var result = viewerList.map(function(item) {
    return { userId : item.viewerId}
})

console.log(result)

这适用于所有浏览器 ie9 及更高版本。有关正在使用的 .map() 函数的更多信息,see this

关于JavaScript:按键选择旧数组并重命名新数组中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52256747/

相关文章:

javascript - 如何在js中用两个不同的间隔为一个组件设置动画

ios - 如何在 Swift 中从大到小排列双数组?

javascript - 将对象结构减少为仅包含特定属性的值

javascript - 使用 lodash 对特定类型的数据进行分组并按升序或降序对它们进行排序

javascript - 如何返回包含值的索引列表

javascript - 如何显示标记周围的圆圈?

javascript - 如何让我的过渡顺利?

java - 在第一列中查找重复项并根据第三列取平均值

c - "Invisible"操作二维数组时出错。 (0 个错误,0 个警告)

javascript - 如何获得两个数组之间的差异?