- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我第一次尝试编写任何代码,所以如果我所做的没有意义,请让我休息一下,并请解释发生了什么。我从来没有上过课或任何东西,只是读了几本书,所以如果你能解释一下,我将不胜感激。我正在尝试做这个问题(说明如下);
Given a sequence of integers as an array, determine whether it is possible to obtain a strictly increasing sequence by removing no more than one element from the array
所以,这就是我所做的:
function almostIncreasingSequence (sequence) {
for(x=0; x < sequence.length; x++) {
var y = sequence[x];
sequence.splice[x,1];
if (sequence === sequence.sort(function (a, b) {return a > b})) {
return sequence
} else {
sequence.splice[x,0,"y"]
}
}
}
当我将 true 和 false 作为返回它们应该去的地方时,它没有返回我想要的内容,因此我用序列替换了 true 并删除了 false 以查看发生了什么。这正是我为了查看它返回的内容所做的,所以我知道从那里该去哪里。我不是在寻求答案。我很困惑为什么它会返回它所做的事情。为什么这总是返回排序和比较的序列(数字按从最小到最大的顺序)?这不应该是答案,除非它应该返回“true”。我期望的是,它会删除数组中的每个元素,一次一个,检查它是否按顺序排列,如果不按顺序放回去。我选择{返回序列}
只是为了看看序列最终做了什么,并且只为了答案应该为真的序列而返回它。再次,我认为它会检查序列(现在缺少元素序列[x])是否等于从最多到最少排序的序列 (sequence ===equence.sort(function (a,b) {return a>b}))
,如果是则返回'true'
,如果不是则替换 array[x]。然后重新开始,但每次只是从最小到最大返回数组。为什么第四行不被隔离?它不只是查看它们是否彼此相等,而是服从命令并更改整个序列定义。就像我要写的那样:
function almostIncreasingSequence (sequence) {
for (x=0; x < sequence.length; x++) {
var y = 1;
var x = 3;
if(x === y + x) {
return x
} else {
return y
}
}
}
这不会返回y+x
,它总是返回y
,那么为什么第一个示例返回sequence.sort(function (a,b ){return a>b})
每次?我意识到它对“序列”进行了排序,然后“序列”变成了sequence.sort(function (a,b){return a>b}),但为什么呢?它位于 if
语句内,应该查看它们是否为 ===
,而不是使序列 =
到已排序和比较的序列。它不像在第二个示例中,x
变成了y+x
。这是怎么回事?为什么说 if(sequence ===equence.sort(function (a,b){return a>b}))
实际上是 array.sort[compare function]
当它只应该查看它们是否相等时的序列?
最佳答案
sort
方法返回与应用 sort
方法相同的数组对象,而不是新(已排序)数组。数组本身已排序,因此原始顺序会丢失。这称为就地排序。因此,对于任何数组 x
,x.sort() === x
都始终为真,与它的排序方式无关。比较是在对象(数组)引用上进行的,并且该引用在排序过程中不会更改。
所以有两个问题同时发生:
sort
改变调用它的数组。如果您想获得数组的排序版本而不影响原始数组,那么您必须首先获取一个副本,例如使用slice
:
sequence.slice().sort((a, b) => a - b)
现在sequence
将不会被排序,但表达式将返回它的排序副本。如果您继续这样:
const sortedSeq = sequence.slice().sort((a,b) => a - b);
if (sequence === sortedSeq[i]) then // ...etc
...即使原始数组已经排序,条件永远不会为真。请参阅下一点:
当arr1
和arr2
是数组时,比较它们的内容并不像arr1 === arr2
那么简单。这只会告诉您它们是否是同一个对象(数组)引用。如果是,那么它们的内容必然相等,但反之则不然:如果两个数组是不同的引用,则并不意味着它们的元素相同且顺序相同。为此,您必须比较元素本身,例如您可以使用 every
进行比较:
const sortedSeq = sequence.slice().sort((a,b) => a - b);
if (sequence.every( (a, i) => a === sortedSeq[i] ) then // ...etc
那就是你认为自己正在做的事情。
请注意,您正在处理的挑战之前已在 StackOverflow 上提出过。请参阅Determine whether array holds an almost increasing sequence
关于javascript - 如何查看一个数组是否与另一个数组相同以及为什么尝试查看它们是否 === 将第一个数组更改为第二个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48573512/
SO亲爱的 friend 们: 2014 年 3 月 18 日。我正在处理一种情况,在使用 ng-repeat 时,数组内的元素(我从 Json 字符串中获取)更改了原始顺序。 需要明确的是,数组中的
有很多问题询问如何在 JavaScript 单击处理程序中更改 div 的类,例如,此处:Change Div style onclick .我理解得很好(只需更改 .className),并且它有效
我从access导入了一个数据库到mysql,但其中一个表的列名“股数”带有空格,但我尝试更改、替换甚至删除列名,但失败了。任何人都可以帮助解决这一问题 String UpdateQuary = "U
我正在做一个随机的学校元素。 目前,我有一个包含两个 CSS 的页面。一种用于正常 View ,一种用于残障人士 View 。 此页面还包括两个按钮,它们将更改使用的样式表。 function c
我需要使用 javascript 更改 HTML 元素中的文本,但我不知道该怎么做。 ¿有什么帮助吗? 我把它定义成这样: Text I want to change. 我正在尝试这样做: docum
我在它自己的文件 nav_bar.shtml 中有一个主导航栏,每个其他页面都包含该导航栏。这个菜单栏是一个 jQuery 菜单栏(ApyCom 是销售这些导航栏的公司的名称)。导航栏上的元素如何确定
我正在摆弄我的代码,并开始想知道这个变化是否来自: if(array[index] == 0) 对此: if(!array[index] != 0) 可能会影响任何代码,或者它只是做同样的事情而我不需
我一直在想办法调整控制台窗口的大小。这是我正在使用的函数的代码: #include #include #define WIDTH 70 #define HEIGHT 35 HANDLE wHnd;
我有很多情况会导致相同的消息框警报。 有没有比做几个 if 语句更简单/更好的解决方案? PRODUCTS BOX1 BOX2 BOX3
我有一个包含这些元素的 XELEMENT B Bob Petier 19310227 1 我想像这样转换前缀。 B Bob Pet
我使用 MySQL 5.6 遇到了这种情况: 此查询有效并返回预期结果: select * from some_table where a = 'b' and metadata->>"$.countr
我想知道是否有人知道可以检测 R 中日期列格式的任何中断的包或函数,即检测日期向量格式更改的位置,例如: 11/2/90 12/2/90 . . . 15/Feb/1990 16/Feb/1990 .
我希望能够在小部件显示后更改 GtkButton 的标签 char *ButtonStance == "Connect"; GtkWidget *EntryButton = gtk_button_ne
我正在使用 Altera DE2 FPGA 开发板并尝试使用 SD 卡端口和音频线路输出。我正在使用 VHDL 和 C 进行编程,但由于缺乏经验/知识,我在 C 部分遇到了困难。 目前,我可以从 SD
注意到这个链接后: http://www.newscientist.com/blogs/nstv/2010/12/best-videos-of-2010-progress-bar-illusion.h
我想知道在某些情况下,即使剧本任务已成功执行并且 ok=2,ansible 也会显示“changed=0”。使用 Rest API 和 uri 模块时会发生这种情况。我试图找到解释但没有成功。谁能告诉
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: add buttons to push notification alert 是否可以在远程通知显示的警报框中指定有
当您的 TabBarController 中有超过 5 个 View Controller 时,系统会自动为您设置一个“更多” View 。是否可以更改此 View 中导航栏的颜色以匹配我正在使用的颜
如何更改.AndroidStudioBeta文件夹的位置,默认情况下,该文件夹位于Windows中的\ .. \ User \ .AndroidStudioBeta,而不会破坏任何内容? /编辑: 找
我目前正在尝试将更具功能性的编程风格应用于涉及低级(基于 LWJGL)GUI 开发的项目。显然,在这种情况下,需要携带很多状态,这在当前版本中是可变的。我的目标是最终拥有一个完全不可变的状态,以避免状
我是一名优秀的程序员,十分优秀!