Javascript 按给定的索引(角度)将选定对象从阵列内部移动到阵列内部的位置

Javascript 按给定的索引(角度)将选定对象从阵列内部移动到阵列内部的位置,javascript,html,jquery,css,angular,Javascript,Html,Jquery,Css,Angular,我有一个对象数组和两个选择框,在“从”和“到”选择框(索引)中有一些值,我试图在给定数组中将对象“从”(索引)选定位置移动到”(索引)选定位置,反之亦然,而不改变其他对象的索引或位置值。 我使用的逻辑是工作的,如果我从选择框中选择值小于“到”选择框,那么它有点工作,但否则它不会 下面是代码和逻辑,我正在努力移动值,但它不起作用 导入{ 组成部分 奥尼特 }从“@角度/核心”; @组成部分({ 选择器:“我的应用程序”, templateUrl:“./app.component.html”, 样

我有一个对象数组和两个选择框,在“从”和“到”选择框(索引)中有一些值,我试图在给定数组中将对象“从”(索引)选定位置移动到”(索引)选定位置,反之亦然,而不改变其他对象的索引或位置值。 我使用的逻辑是工作的,如果我从选择框中选择值小于“到”选择框,那么它有点工作,但否则它不会

下面是代码和逻辑,我正在努力移动值,但它不起作用

导入{
组成部分
奥尼特
}从“@角度/核心”;
@组成部分({
选择器:“我的应用程序”,
templateUrl:“./app.component.html”,
样式URL:[“/app.component.css”]
})
导出类AppComponent实现OnInit{
name=“Angular”;
数据=[{
id:“fmgbwe45”,
年龄:24岁,
性别:“男性”
},
{
id:“kjregh23”,
年龄:27岁,
性别:“女性”
},
{
id:“kjfdhg87”,
年龄:30,,
性别:“男性”
},
{
id:“lsdjfk43”,
年龄:10岁,
性别:“女性”
},
{
id:“lsdjfk43”,
年龄:15岁,
性别:“女性”
},
{
id:“lsdjfk43”,
年龄:14岁,
性别:“女性”
},
{
id:“lsdjfk43”,
年龄:50,,
性别:“女性”
},
{
id:“lsdjfk43”,
年龄:19岁,
性别:“女性”
}
];
从:“;
至:“;
ngOnInit(){}
更改选择(事件、值){
如果(value==“from”)this.from=event.target.value;
否则this.to=event.target.value;
//log(this.to,“=”,this.from);
this.data.forEach((项目,i)=>{
if(this.to&&this.from){
设f=this.data.splice(parseInt(this.from),1)[0];
var d=this.data.splice(parseInt(this.to),0,f);
console.log(this.data,f);
}else{}
});
}
}
pretty print:
从以下索引中选择一个索引:
{{data1.age}}+{{i+1}}
==
选择要编制索引的项目:
{{data1.age}}+{{i+1}}
{{data1 | json}}+{{i+1}}
您可以这样做

<h2>pretty-print:</h2>
<form action="/action_page.php">

  <label for="cars">Choose a from index:</label>
<select name="cars" (change)="changeSelect($event,'from')" >
  <option *ngFor="let data1 of data; let i = index" [value]="i+1">{{data1.age}}+ {{i+1}}</option>

</select>
==
  <label for="cars">Choose a To index:</label>

<select name="cars" (change)="changeSelect($event,'to')" >
  <option *ngFor="let data1 of data; let i = index" [value]="i+1">{{data1.age}}+ {{i+1}}</option>

</select>
<div *ngFor="let data1 of data; let i = index">
<pre >{{data1 | json}} + {{i+1}} </pre>
</div>
</form>
component.html

pretty print:
从以下索引中选择一个索引:
{{data1.age}}+{{i+1}}
==
选择要编制索引的项目:
{{data1.age}}+{{i+1}}
{{data1 | json}}+{{i+1}}

hi,你为什么要用两个数组我有点困惑。只是因为你使用的下拉列表与你正在操作的数组相同,这就是为什么我选择了另一个数组来进行manipulate和dropdownsry的静态数组,我忘记了编辑component.html文件,请现在检查@vinuta@NarendraChouhannewData数组只是显示输出,这不是必需的。您可以删除它。@AakashGarg此处newData array是用户需要显示的下拉列表的值,请选中此项
<h2>pretty-print:</h2>
<form action="/action_page.php">

  <label for="cars">Choose a from index:</label>
<select name="cars" (change)="changeSelect($event,'from')" >
  <option *ngFor="let data1 of data; let i = index" [value]="i+1">{{data1.age}}+ {{i+1}}</option>

</select>
==
  <label for="cars">Choose a To index:</label>

<select name="cars" (change)="changeSelect($event,'to')" >
  <option *ngFor="let data1 of data; let i = index" [value]="i+1">{{data1.age}}+ {{i+1}}</option>

</select>
<div *ngFor="let data1 of data; let i = index">
<pre >{{data1 | json}} + {{i+1}} </pre>
</div>
</form>