首页 > 解决方案 > 获取 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);    
    }   

标签: javascript

解决方案


您正在数组中传递对象引用。在最后一次迭代中,对象将具有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);


推荐阅读