javascript - 获取 JSON 中的最后一个索引值
问题描述
下面的代码有什么问题?获取最后一个索引值。在所有 JSON 对象中
let arr = ['apple','banana','cherry'];
let dataJson=[];
let json={}
console.log('lent',arr.length);
for(var i = 0; i<arr.length;i++) {
json.name=arr[i];
json.type="fruit";
dataJson.push(json);
}
解决方案
您正在数组中传递对象引用。在最后一次迭代中,对象将具有cherry
反映在数组中传递的所有对象中。相反,用于Object.assign
创建新对象。
let arr = ['apple','banana','cherry'];
let dataJson=[];
let json={}
for(var i = 0; i<arr.length;i++) {
json.name=arr[i];
json.type="fruit";
dataJson.push(Object.assign({}, json));
}
console.log(dataJson);
您可以使用reduce
.
let fruits = ['apple','banana','cherry'];
const output = fruits.reduce((a, fruit) => {
a.push({"name": fruit, type: "fruit"});
return a;
}, []);
console.log(output);
推荐阅读
- c - 为什么我的关于反转位的 C 代码不起作用?
- php - 从输入 PHP 在数组中添加数组
- rust - 如何处理 tokio::spawn 闭包需要'static 和 &self?
- python - ValueError:概率在 numpy 中不是非负数
- xml - 为 XML 指定命名空间的本地相对路径
- api - NullPointerException 出现在 API 请求中 - POSTMAN
- databricks - 如何在 Databricks SQL 中查找具有相同(相似)名称的所有表
- python - 我在导入烧瓶时使用烧瓶制作项目我收到此错误,我不知道这是什么意思
- ios - 创建模型的清洁方式
- python - 用另一个字符串替换多行