javascript - 我想从更改键的 javascript 数组中获取 php 数组
问题描述
我从一个excel文件生成了一个数组并得到了这个结果。
当前结果:这是我从 excel 文件中读取的结果
[
{name: "mike floss", occupation: "student", age: 19, nickname: "mike", __rowNum__: 1},
{name: "john blake", occupation: "student", age: 20, nickname: "john", __rowNum__: 2},
{name: "dan brown", occupation: "police officer", age: 25, nickname: "dan", __rowNum__: 3}
]
预期结果:这是我想要得到的,我使用 json_encode() 来显示它。
{
dan: {name: "dan brown", occupation: "police officer", age: 25},
john: {name: "john blake", occupation: "student", age: 20},
mike: {name: "mike floss", occupation: "student", age: 19}
}
这是我尝试过的
function changekeys(arr) {
for (var i = 0; i < arr.length; i++) {
const mapped = arr.reduce((acc, item) => {
if (!acc.hasOwnProperty(item[i]['nickname'])) {
acc[item[i]['nickname']] = [];
}
acc[item[i]['nickname']].push(item);
return acc;
}, {});
console.log(mapped);
}
}
我已经在另一个函数中调用了该函数。
changekeys(newArr);
我不断收到错误消息,未定义“昵称”。
解决方案
这可以使用reduce
函数来实现
function changekeys(arr) {
return arr.reduce((result, person) => {
result[person.nickname] = {
name: person.name,
occupation: person.occupation,
age: person.age
}
return result;
}, {})
}
const data = [
{name: "mike floss", occupation: "student", age: 19, nickname: "mike", __rowNum__: 1},
{name: "john blake", occupation: "student", age: 20, nickname: "john", __rowNum__: 1},
{name: "dan brown", occupation: "police officer", age: 25, nickname: "dan", __rowNum__: 1}
]
console.log(changekeys(data))
推荐阅读
- javascript - 如何使用 Nuxt 2 转换 node_modules 中的依赖项?
- python-3.x - 分层索引按列排序,同时保留原始列
- python - Python:如何从包含重复项的列表列表中返回具有计数的不同项目列表?
- javascript - 使用 MySQL 中的 PHP 数组数据生成 Google 函数图,但函数不可视化
- google-apps-script - Google 表格脚本帮助:复制/粘贴值 + 清除数据 + 合并行(保留唯一值)
- mysql - 如何在 MySQL 的 IF 条件下不返回任何内容?
- node.js - 在构建脚本中使用 util.promisfy 无法按预期工作
- java - 不断收到此错误:“变量总计可能尚未初始化”
- python - 在 Python 中编辑 print 的输出格式
- matlab - 在 MATLAB 上查找矩阵的 m 线性独立列