【问题标题】:How to concat an object at particular index in Array using javaScript?如何使用 javaScript 在 Array 中的特定索引处连接对象?
【发布时间】:2017-04-26 04:45:56
【问题描述】:

我有类似 arr = [object1, object2, object3] 的数组。我删除了 1 个索引,因此数组将是 arr = [object1, object3], 并且我想再次将删除的 object2 添加到它之前的位置,例如 arr = [object1, object2, object3]。 请给我建议一种方法来实现这一点。

【问题讨论】:

  • 你有什么尝试过的吗?
  • 你有被移除变量的副本
  • @JinsPeter,不,我没有已删除变量的副本。
  • 您必须删除它然后稍后再添加它的原因是什么。您将如何处理 arr 或其中需要此步骤的剩余 obj?

标签: javascript angularjs arrays


【解决方案1】:

创建一个包含arr[object3] 的临时变量,然后将其从数组中删除。然后将两个对象一一添加到数组中。

【讨论】:

    【解决方案2】:

    你必须使用 VanillaJS 的 Array.splice()

    //Fn syntax
    
    Array.prototype.Splice = function([indexOfRemovedElt],[No.Of Elts to Remove],<Any Object/Objects you want to add at the same position seperated by comma>)
    

    在你的情况下,让数组为 arr

    var arr= [1,2,3,4,5];
    

    让 j 是你需要删除和添加的元素的索引。 保存和删除你使用,

    var saved = arr[j];
    

    删除

    arr.splice(j,[noOfelts]=1);
    

    再次添加

    arr.splice(j,0,saved);
    

    【讨论】:

    • 不要回答写得不好的问题,这只会鼓励他们和其他喜欢他们的人提出更多问题。
    • 这就是为什么我投了反对票。伙计,我是 stackOverflow 的初学者。我在 JS 方面有一些经验,完成项目后我就闲着。这就是为什么我试图回答一切。只是为了让我的大脑滚动
    • @JK.,感谢您的回复。我也是 stackOverFlow 和编程方面的新手。我有问题所以只是试图解释我的问题,我尝试了很多东西,下次我会在 StackOverflow 上尽我所能。
    【解决方案3】:

    使用 ES5 的演示:

    var object1 = {name:"object1"};
    var object2 = {name:"object2"};
    var object3 = {name:"object3"};
    var arr = [object1, object2, object3];
    
    var removedObj = arr.splice(1,1); // removed object2 from an array.
    
    console.log(arr); // [object1, object3]
    
    var addRemovedObj = arr.splice(1,0,removedObj[0]);
    
    console.log(arr); // [object1, object2, object3]

    使用 ES6 的演示:

    let object1 = {name:"object1"};
    let object2 = {name:"object2"};
    let object3 = {name:"object3"};
    let arr = [object1, object2, object3];
    
    let removedObj = arr.splice(1,1); // removed object2 from an array.
    
    console.log(arr); // [object1, object3]
    
    arr = [object1, ...removedObj, object3];
    
    console.log(arr); // [object1, object2, object3]

    【讨论】:

      猜你喜欢
      • 2021-03-02
      • 2020-11-29
      • 2016-10-15
      • 2014-02-26
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      相关资源
      最近更新 更多