Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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
Javascript 获取新推送项的索引_Javascript_Jquery_Sorting - Fatal编程技术网

Javascript 获取新推送项的索引

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还返回数组的新长度,因此

//获取索引号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
还返回数组的新长度,因此可以从中减去。

使用
数组时。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']将添加一个字符串。
应该添加like
item=[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