首页 > 解决方案 > 如何在最后一项之前将 JSON 插入数组中?

问题描述

我想构建一个函数,该函数将始终在之前的项目JSON Items处插入数组。last

const array = [ 
  {India: { Score: '12', PlayedMatched: '21' } },
  { China: { Score: '52', PlayedMatched: '51' }},
  { USA: { Score: '15', PlayedMatched: '06' } },
  // Insert Items Here
  { 'Index Value': 12 }      
]

const insert = (arr, index, newItem) => [
    ...arr.slice(0, index),
    newItem,
    ...arr.slice(index)
]


var insertItems= [{ 'Japan': { Score: "54", PlayedMatched: "56" } },{ 'Russia': { Score: "99", PlayedMatched: "178" } }];

// I have tried like this: array.slice(-1) to insert item one step before always

const result = insert(array,array.slice(-1),insertItems)

console.log(result);

输出:


[ [ { Japan: [Object] }, { Japan: [Object] } ],     //Not at Here
  { India: { Score: '12', PlayedMatched: '21' } },
  { China: { Score: '52', PlayedMatched: '51' } },
  { USA: { Score: '15', PlayedMatched: '06' } },
  { 'Index Value': 12 } ]

预期输出:

[ 
  { India: { Score: '12', PlayedMatched: '21' } },
  { China: { Score: '52', PlayedMatched: '51' } },
  { USA: { Score: '15', PlayedMatched: '06' } },
  [ { Japan: [Object] }, { Japan: [Object] } ],      //At here
  { 'Index Value': 12 }
]

我该怎么做?而且我还想删除这个:[]在我的输出结果中。:)

像这样:

 [ 
  {India: { Score: '12', PlayedMatched: '21' } },
  { China: { Score: '52', PlayedMatched: '51' }},
  { USA: { Score: '15', PlayedMatched: '06' } },
  { 'Japan': { Score: "54", PlayedMatched: "56" } },
  { 'Russia': { Score: "99", PlayedMatched: "178" } },
  { 'Index Value': 12 }      
]

标签: javascriptarraysinsert

解决方案


只需将要插入的索引号作为index参数传递给插入函数即可完成工作。在你的情况下排名第二,你可以通过array.length - 1

const array = [ 
  {India: { Score: '12', PlayedMatched: '21' } },
  { China: { Score: '52', PlayedMatched: '51' }},
  { USA: { Score: '15', PlayedMatched: '06' } },
  { 'Index Value': 12 }      
]

const insert = (arr, index, newItem) => [
    ...arr.slice(0, index),
    ...newItem,
    ...arr.slice(index)
]


var insertItems= [{ 'Japan': { Score: "54", PlayedMatched: "56" } },{ 'Russia': { Score: "99", PlayedMatched: "178" } }];



const result = insert(array,array.length - 1,insertItems)

console.log(result);

推荐阅读