Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 返回相同元素的数组筛选器_Arrays_Typescript - Fatal编程技术网

Arrays 返回相同元素的数组筛选器

Arrays 返回相同元素的数组筛选器,arrays,typescript,Arrays,Typescript,我试图在数组中上下移动问题,因此我更新了对象中的序列号,并根据序列号对它们进行排序。但是,即使数组包含所需的值,下面的筛选器语句也会不断返回相同的元素 像这样修改对象会更新原始数组中的对象吗 var questiontoswap = this.questions.filter(x => x.sequence == question.sequence + 1 && ("state" in x) ? (x.state != 3) : true)[0]; va

我试图在数组中上下移动问题,因此我更新了对象中的序列号,并根据序列号对它们进行排序。但是,即使数组包含所需的值,下面的筛选器语句也会不断返回相同的元素

像这样修改对象会更新原始数组中的对象吗

var questiontoswap = this.questions.filter(x => x.sequence == question.sequence + 1 && ("state" in x) ? (x.state != 3) : true)[0];
var originalquestion = this.questions.filter(x => x.sequence == question.sequence && ("state" in x) ? (x.state != 3) : true
                            )[0];
questiontoswap.sequence -= 1;
originalquestion.sequence += 1;
let filteredquestions =this.questions.filter(x => x.state != 3).sort((a, b) => (a.sequence < b.sequence ? -1 : 1));
           
var questiontoswap=this.questions.filter(x=>x.sequence==question.sequence+1&&(“状态”在x中)?(x.state!=3):true)[0];
var originalquestion=this.questions.filter(x=>x.sequence==question.sequence&&(“状态”在x中)?(x.state!=3):true
)[0];
问题wap.sequence-=1;
原始问题.sequence+=1;
让filteredquestions=this.questions.filter(x=>x.state!=3).sort((a,b)=>(a.sequence
阵列

questions: (3) […]
​​​
0: {…}
​​​​
questionId: 7
​​​​
questionLanguages: (4) […]
​​​​
questionType: "Short answer"
​​​​
questionTypeId: 2
​​​​
rowId: 1
​​​​
sequence: 1
​​​​
<prototype>: {…}
​​​
1: {…}
​​​​
questionId: 13
​​​​
questionLanguages: (4) […]
​​​​
questionType: "MCQ"
​​​​
questionTypeId: 3
​​​​
rowId: 2
​​​​
sequence: 2
​​​​
<prototype>: {…}
​​​
2: {…}
​​​​
questionId: 19
​​​​
questionLanguages: (4) […]
​​​​
questionType: "Likert"
​​​​
questionTypeId: 4
​​​​
rowId: 3
​​​​
sequence: 3
​​​​
<prototype>: {…}
​​​
length: 3
问题:(3)[…]
​​​
0: {…}
​​​​
问题编号:7
​​​​
问题语言:(4)[……]
​​​​
问题类型:“简短回答”
​​​​
问题类型ID:2
​​​​
罗维德:1
​​​​
顺序:1
​​​​
: {…}
​​​
1: {…}
​​​​
问题编号:13
​​​​
问题语言:(4)[……]
​​​​
问题类型:“MCQ”
​​​​
问题类型ID:3
​​​​
罗维德:2
​​​​
顺序:2
​​​​
: {…}
​​​
2: {…}
​​​​
问题编号:19
​​​​
问题语言:(4)[……]
​​​​
问题类型:“利克特”
​​​​
问题类型ID:4
​​​​
罗维德:3
​​​​
顺序:3
​​​​
: {…}
​​​
长度:3

Quick Test显示它实际上按照预期工作:我刚刚删除了x&&x.state中的
'state!=3
条件并更改了比较器
a.sequence-b.sequence
,该比较器也适用于0情况。。。还为选择最后一个问题的潜在案例添加了try..catch。。。总而言之,我不会写这样的代码,但它应该可以工作。你的问题很可能在其他地方。@makadev谢谢你的帮助。我已经解决了这个问题。删除这个问题。