Javascript 获取JSON中的最后一个索引值

Javascript 获取JSON中的最后一个索引值,javascript,Javascript,下面的代码有什么问题?正在获取所有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";

下面的代码有什么问题?正在获取所有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);    
    }   
让arr=[‘苹果’、‘香蕉’、‘樱桃’];
让dataJson=[];
让json={}
控制台日志('lent',arr.length);

对于(var i=0;i您正在数组中传递对象引用。在上一次迭代中,对象将具有
cherry
,这反映在数组中传递的所有对象中。相反,请使用
object.assign
创建新对象

让arr=[‘苹果’、‘香蕉’、‘樱桃’];
让dataJson=[];
让json={}

对于(var i=0;i您正在数组中传递对象引用。在上一次迭代中,对象将具有
cherry
,这反映在数组中传递的所有对象中。相反,请使用
object.assign
创建新对象

让arr=[‘苹果’、‘香蕉’、‘樱桃’];
让dataJson=[];
让json={}

对于(var i=0;i,看起来您正试图将
string
水果名称数组转换为JavaScript对象。目前,您的代码总是在每次迭代中覆盖name属性。我建议改为在每次迭代中推送一个对象

让arr=[‘苹果’、‘香蕉’、‘樱桃’];
让dataJson=[];
控制台日志('lent',arr.length);
for(vari=0;i({name:d,键入:'fruit'}));

console.log(data);
看起来您正试图将
string
水果名称数组转换为JavaScript对象。当前,每次迭代时,您的代码总是覆盖name属性。我建议在每次迭代中推送一个对象

让arr=[‘苹果’、‘香蕉’、‘樱桃’];
让dataJson=[];
控制台日志('lent',arr.length);
for(vari=0;i({name:d,键入:'fruit'}));

console.log(数据);
我会用map来做

const arr=[“苹果”、“香蕉”、“樱桃”]
const dataJson=arr.map(水果名=>({name:水果名,类型:'fruit'}))

log(dataJson)
我会使用map来完成

const arr=[“苹果”、“香蕉”、“樱桃”]
const dataJson=arr.map(水果名=>({name:水果名,类型:'fruit'}))

log(dataJson)
您想实现什么?如果希望dataJson具有唯一的nad类型名称的对象,则需要在循环中创建对象,否则它们都将是相同的对象。您想实现什么?如果希望dataJson具有唯一的nad类型名称的对象,则需要在循环中创建对象,否则它们都将是相同的对象相同的对象。谢谢@randomSoulI。我不认为这是
数组的正确用例。reduce
。我当然可以看到
数组。map
,但这里没有任何东西可以减少/累积。如果OP试图获得不同类型水果的计数,我完全可以在这里看到
reduce
。谢谢@randomSoulI不要ink这是
数组的正确用例。reduce
。我当然可以看到
数组。map
,但这里没有任何东西可以减少/累积。如果OP试图获得不同类型水果的计数,我完全可以在这里看到
reduce