标签: array-splice

从数组中删除除特定元素之外的元素

我有两个数组。第一个是索引数组,第二个是对象数组。它们看起来像这样:

var nums = [0, 2];
var obj = [Object_1, Object_2, Object_3];
Run Code Online (Sandbox Code Playgroud)

在这种特殊情况下,我需要删除objobj[0]and之外的所有 " " 元素obj[2]。所以结果将如下所示:

obj = [Object_2]
Run Code Online (Sandbox Code Playgroud)

也有可能出现nums = [0, 1, 2]obj = [Object_1, Object_2, Object_3]; 在这种情况下,我不需要删除任何元素。

obj”长度总是大于“nums”长度。

所以我开始只找到我需要保存的元素:

nums.forEach(function(key) {
    obj.forEach(function(o, o_key) {
        if (key === o_key) {
            console.log(key, o);
            // deleting remaining elements
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

问题:如何删除不符合我的条件的元素?我不需要新数组,我想修改现有的“obj”数组。我怎样才能实现这个功能?或者我应该使用其他一些技术?

javascript arrays algorithm array-splice

4
推荐指数
2
解决办法
6914
查看次数

PHP:在一个foreach()主题的数组上使用array_splice会导致问题吗?

我正在编写一些类似这样的PHP代码:

foreach($filter[1] as $reject){
        $reject_processed = preg_replace('~\s~','',strtolower($filter[1][$reject]));
        if(array_key_exists($reject_processed,$list_of_common_replacements)){
            $filter[0][] = $list_of_common_replacements[$reject_processed];
            $filter[1] = array_splice($filter[1],$reject,1)
        }

    }
Run Code Online (Sandbox Code Playgroud)

它应该搜索被拒绝的值列表(filter [1]),查找是否存在替换,然后(如果是)将替换添加到良好值列表(filter [0]),同时从中删除固定值拒绝清单.

将从foreach()内部的foreach()主要主题的数组中删除值会导致问题吗?

php foreach array-splice

3
推荐指数
1
解决办法
3962
查看次数

PHP基于值拆分数组

可能的重复:
如何根据某个值拆分数组?

这是我要拆分的示例数组:

(0, 1 ,2 ,3, 0, 4, 5)

我如何像这样将它分成 2 个数组?

(0, 1 ,2 ,3) (0, 4, 5)

基本上我想检查一个元素的值是否为零,然后创建一个包含所有元素的数组,直到找到另一个零。我似乎无法想出解决方案。

php array-splice

3
推荐指数
1
解决办法
1万
查看次数

php从对象数组中删除对象

我试图通过'索引从对象数组中删除对象.这是我到目前为止所得到的,但我很难过.

$index = 2;

$objectarray = array(
0=>array('label'=>'foo', 'value'=>'n23'),
1=>array('label'=>'bar', 'value'=>'2n13'),
2=>array('label'=>'foobar', 'value'=>'n2314'),
3=>array('label'=>'barfoo', 'value'=>'03n23')
);

//I've tried the following but it removes the entire array.
foreach ($objectarray as $key => $object) {
 if ($key == $index) {
   array_splice($object, $key, 1);
   //unset($object[$key]); also removes entire array.
 }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

更新方案

 array_splice($objectarray, $index, 1); //array_splice accepts 3 parameters 
    //(array, start, length) removes the given array and then normalizes the index
    //OR 
    unset($objectarray[$index]); //removes the array at given index
    $reindex = array_values($objectarray); …
Run Code Online (Sandbox Code Playgroud)

php arrays object array-splice

3
推荐指数
1
解决办法
2万
查看次数

在地图功能中调用拼接

我有以下代码:

var a = [{a: 1}, {a: 2}, {a: 3}];
a.map(function (item, index) {
  console.log('call');
  if (index < 1) {
    a.splice(index, 1);
  }
});
Run Code Online (Sandbox Code Playgroud)

但打电话只打印两次,我希望打印三次.我知道这splice搞砸了数组,但这种行为有一些解决方法吗?

谢谢!

javascript splice array-splice

3
推荐指数
1
解决办法
7218
查看次数

如何在角5中使用拼接

我创建了一个表,显示从数据库中获取的数据.获取数据的TS部分类似于:

this._appService.getVisitData().subscribe((data) => {
  this.checkinTemp = data;
  // Calling the DT trigger to manually render the table
  this.dtTrigger.next();
});
Run Code Online (Sandbox Code Playgroud)

表生成了,我添加了编辑和删除功能,我的视图代码:

<table datatable [dtOptions]="dtOptions" [dtTrigger]="dtTrigger" class="row-border hover">

  <thead>
  <tr>
    <th>ID</th>
    <th>Visitor Name</th>
    <th>Department</th>
    <th>Purpose</th>
    <th>Schedule Date Time</th>
    <th>Entry Source</th>
  </tr>
  </thead>
  <tbody>
  <tr *ngFor="let data of checkinTemp">
    <td>{{data.id}}</td>
    <td>
      <a  (click)="viewCheckinData(data)"> {{data.f_name}} {{data.l_name}} </a>
      <span>
            <a  (click)="editCheckinData(data)">Edit</a>
        <a  (click)="confirmDelete(data)">Delete</a>
      </span>
    </td>
    <td>
      <span *ngIf="data.department == null || data.department == ''">N/A</span>
      <span *ngIf="data.department !== null ">{{data.department}}</span>
    </td>
    <td>
      <span *ngIf="data.purpose == null …
Run Code Online (Sandbox Code Playgroud)

splice array-splice angular angular5

3
推荐指数
1
解决办法
1万
查看次数

功能中的拼接不会按预期改变字符

我已经在这个函数上工作了一段时间,但我不明白为什么即使我使用 .splice() 我也没有得到一个修改过的数组。我提供了开始更改数组“i”的索引、要删除的元素数“1”和要添加的元素“str[i]”。

function wave(str) {
  let result = [];
  for (let i = 0; i < str.length; i++) {
    if ((/[a-z]/ig).test(str[i])) {
      let st = str.split("").splice(i, 1 , str[i].toUpperCase());
      result.push(st);
    }
  }
 return result;

}


console.log(wave('hello')); // expected ["Hello", "hEllo", "heLlo", "helLo", "hellO"];
console.log(wave("two words")); // ["Two words", "tWo words", "twO words", "two Words", "two wOrds", "two woRds", "two worDs", "two wordS"];
Run Code Online (Sandbox Code Playgroud)

javascript for-loop splice array-splice

3
推荐指数
1
解决办法
71
查看次数

as3:数组拼接是否完全删除了一个对象?

我在一个数组中有很多显示对象,我不断添加并从舞台中删除.删除后,它们不再使用.

考虑到displayObject不在显示列表中,并且没有事件监听器......如果我使用splice将其从数组中删除,它是否会被垃圾收集?

如果我先将对象置空,会更安全吗?

myArray[2] = null;
myArray.splice(2,1);
Run Code Online (Sandbox Code Playgroud)

garbage-collection actionscript-3 array-splice

2
推荐指数
1
解决办法
1670
查看次数

php array_splice()空数组

我试图在给定的索引处将值添加到数组中,但到目前为止没有任何运气.我有以下内容:

$array = array('first', 'second', 'third');
array_splice($array, 0, 0, array('another'));
Run Code Online (Sandbox Code Playgroud)

这导致空数组.

我也尝试了不同的偏移量,如1或2 - 具有相同的结果.

有人可以解释我在这里做错了什么吗?

php arrays array-splice

2
推荐指数
1
解决办法
1315
查看次数

AngularJS:索引删除数组项后索引未更新

我试图使用项目的索引从AngularJS的范围数组变量中删除项目.

(如果你在这里停止阅读,认为这是重复的,请跳到脚注链接,我能够找到类似但不同的问题得到回答 - 或者,如果你找到完全相同的问题,我可能会错过一些东西如果您愿意分享它的SO链接,我将不胜感激!Thx)

这是我的例子:

http://jsbin.com/seyaje/3/edit?html,output 
Run Code Online (Sandbox Code Playgroud)

我看到的问题是,索引不会自动更新 - 每次 - 因此错误的项目被删除或如果索引是"越界",项目根本不会被删除.

我个人更喜欢在我的场景中传递索引,而且我认为不必重复找出索引的工作相对较少.(如果索引正确!)

我怎么可能使用AngularJS 1.25解决这个问题?您的建设性帮助永远受到赞赏!


这可能是一个类似的问题如下:

AngularJS从范围中删除项目 如何从范围AngularJS中删除项目

我想要完成的事情,似乎与以下几点相似:

/sf/answers/1666702481/http://plnkr.co/edit/51SNVMQjG3dsmpYI5RyY?p=preview

有些类似的未回答的问题(找到对象并通过索引删除): 删除单击的项目angularjs

javascript arrays array-splice angularjs angularjs-ng-repeat

2
推荐指数
1
解决办法
2492
查看次数