Javascript 获取新推送项的索引
//获取索引号7 为新推送的项拉出一个变量,它将包含数组的长度,因此从中减去一个 像这样:Javascript 获取新推送项的索引,javascript,jquery,sorting,Javascript,Jquery,Sorting,//获取索引号7 为新推送的项拉出一个变量,它将包含数组的长度,因此从中减去一个 像这样: item = ['1,5,2']; item.sortInt(item); item.push('7'); 小提琴: 编辑:对于下层选民: var array = []; var item = array.push('a'); console.log(item); //logs "1" 小提琴: 希望这有帮助 item.length-1将始终是最后一项的索引Array.push还返回数组的新长度,因此
item = ['1,5,2'];
item.sortInt(item);
item.push('7');
小提琴:
编辑:对于下层选民:
var array = [];
var item = array.push('a');
console.log(item); //logs "1"
小提琴:
希望这有帮助
item.length-1
将始终是最后一项的索引Array.push
还返回数组的新长度,因此可以从中减去。使用数组时。push(项目)
项目始终插入在最后位置,因此它将是最后一个项目
var array = [];
var item = array.push('a');
var item2 = array.push('b');
console.log(item-1); //0
console.log(item2-1); //1
如果你想推整数,那么
The index number will be item.length - 1.
您正在以字符串的形式推送该值,并以数字的形式发出警报
改变这个:numbers.push('4')编码>此数字。按(4)代码>
当你按下数字时,它应该是整数而不是字符串,所以删除引号
numbers.push(7); // no need to use quotes('')
代码有问题
您正在按数字。按('4')代码>字符串
和警报警报(数字索引(4))代码>整数
由于此类型不匹配,您将获得-1
解决方案
number.push(4)代码>推送为整数尝试var index=item.push(7)-1代码>
push方法返回数组的长度,新项始终添加在末尾
您还可以使用item.indexOf(7)
。但是它返回第一次出现的索引7,因此当数组中有重复的条目时,它没有用处
注:item=['1,5,2']代码>将添加一个字符串。
应该添加likeitem=[1,5,2]代码>来自:
indexOf使用严格相等(与===或三重相等运算符使用的方法相同)将searchElement与数组的元素进行比较
如果在数组中插入字符串(例如:item.push('4')
)并搜索数字(例如:item.indexOf(4)
),则不会找到该数字
您需要确保查找的内容与插入的内容具有相同的类型:
如果您的输入是一个变量,并且您不确定其类型,以下是强制转换为int或数字的一些常用方法:
$('button').click(function () {
numbers.push(4);//remove the quotes
numbers.sort(sortInt);
$('#text').text(numbers.toString());
getIndexOfNewlyItem();
});
中没有7
item@ArunPJohny我相信他的意思是获取他刚刚推出的项目的索引。在这种情况下,'7'
在这种情况下,它将是item.length-1
,因为推送的项目将添加到数组的底部。小提琴中的代码与问题中显示的代码无关。正如我在(现已删除)的回答中所说,如果您只需要最后一个.push()
ed项的索引,它将是item.length-1
,但是从小提琴上我看到您在添加项后对数组进行排序,所以您真正想问的是“如何在数组Y中获得项X的索引?”这与项目添加到阵列的方式或时间无关。请在问题中尽可能多地包含相关信息,以使其独立。外部链接是不可靠的,与您的问题冲突的外部链接对其他人来说尤其令人困惑。这是对这个问题的正确/简单的解释。为什么要保留O(n)indexOf
,而不仅仅是使用数组的新长度?@Eevee,OP还在推()之后对数组排序:numbers.sort(sortInt)代码>也许这应该是一个binsearch。多奇怪的问题啊。:)这不是问题所在。检查OP的小提琴(问题没有完整的代码)不,它不返回索引,它返回长度:参见“返回”我没有投反对票,但你没有注意到OP对他们所做的解释非常糟糕。他们小提琴中的代码与问题中的代码完全不同,他们在推送项目后对数组进行排序,所以…不知道是谁投了反对票,但我进行了补偿。你说的是对的,即使OP对他的问题有一个糟糕的描述。@nnnnnn是的,我根据标题回答,没有检查小提琴是的。我也没有检查小提琴就回答了,直到我看到其他答案都是关于问题中没有提到的东西。我最终删除了我的答案,并(温和地)在评论中驳斥了这篇文章。不知道为什么这个问题会被否决。“新推送值的索引将始终为0”-不,不会.push()
添加到数组的末尾。
var f = +x; // f will be a number, float or int,
// will be NaN if x isn't a valid number
var i = x|0; // i will be an integer number,
// will be 0 if x isn't a valid number,
// floor(x) if x is a valid float