获取indexOf新推送的项目

时间:2013-10-18 07:06:05

标签: javascript jquery sorting

item = ['1,5,2'];
item.sortInt(item);
item.push('7');

//索引号为7? http://jsfiddle.net/dPwQA/6/

8 个答案:

答案 0 :(得分:3)

您将该值推送为字符串,并将其警告为数字

将此更改:numbers.push('4');更改为此numbers.push(4);

Fiddle

答案 1 :(得分:2)

尝试var index = item.push(7)-1; push方法返回数组的长度,最后总是添加新项。

您也可以使用item.indexOf(7)。但是它返回第一次出现的索引7,所以当你的数组中有重复的条目时它没用。

注意:item = ['1,5,2'];将添加一个字符串。 应该添加item = [1,5,2];

答案 2 :(得分:1)

为新推送的项目拉出一个变量,它将包含数组的长度,因此从中减去一个。

像这样:

var array = [];
var item = array.push('a');
console.log(item); //logs "1"

小提琴:http://jsfiddle.net/KyleMuir/34KB9/

编辑:对于downvoters:

var array = [];
var item = array.push('a');
var item2 = array.push('b');
console.log(item-1); //0
console.log(item2-1); //1

小提琴:http://jsfiddle.net/KyleMuir/34KB9/1/

希望这有帮助!

答案 3 :(得分:1)

当你按下数字时,它应该是整数而不是字符串,所以删除引号

$('button').click(function () {
    numbers.push(4);//remove the quotes
    numbers.sort(sortInt);
    $('#text').text(numbers.toString());

    getIndexOfNewlyItem();

});

jsfiddle

答案 4 :(得分:1)

代码问题

你正在推numbers.push('4');字符串

并提醒alert(numbers.indexOf(4));整数

由于此类型不匹配,您将获得-1

解决方案

DEMO numbers.push(4);按整数推送

答案 5 :(得分:1)

来自MDN

  

indexOf使用严格相等(使用===或三等号运算符使用的相同方法)将searchElement与Array的元素进行比较。

如果在数组中插入一个字符串(例如:item.push('4'))并搜索一个数字(例如:item.indexOf(4)),则无法找到它。

您需要确保所查找的内容与插入内容的类型相同:fiddle

如果您的输入是变量,并且您不确定其类型,则以下是一些强制转换为int或数字的常用方法:

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

fiddle

答案 6 :(得分:0)

item.length - 1将始终是最后一项的索引。 Array.push也会返回数组的新长度,因此您可以从中减去。

答案 7 :(得分:0)

使用Array.push(item)时,项目始终会插入last position,这将是最后一项

The index number will be item.length - 1.

如果你想推整数那么

numbers.push(7); // no need to use quotes('')