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

//得到7的索引号?http://jsfiddle.net/dPwQA/6/

4

8 回答 8

3

您将值作为字符串推送并将其作为数字警报。

改变这个:numbers.push('4');到这个numbers.push(4);

小提琴

于 2013-10-18T07:09:58.117 回答
2

try var index = item.push(7)-1; push 方法返回数组的长度,并且总是在末尾添加新项目。

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

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

于 2013-10-18T07:11:41.600 回答
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/

希望这可以帮助!

于 2013-10-18T07:08:40.477 回答
1

当您推送它应该是整数而不是字符串的数字时,请删除引号

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

    getIndexOfNewlyItem();

});

jsfiddle

于 2013-10-18T07:10:11.440 回答
1

你的代码有问题

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

并提醒alert(numbers.indexOf(4));Integer

由于这种类型不匹配,您得到-1.

解决方案

DEMO numbers.push(4); push as Integer

于 2013-10-18T07:11:03.587 回答
1

来自MDN

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

如果您在数组中插入一个字符串(例如 : item.push('4'))并搜索一个数字(例如 : item.indexOf(4)),它将不会被找到。

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

如果您的输入是一个变量,并且您不确定它的类型,这里有一些强制转换为 int 或 number 的常用方法:

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

小提琴

于 2013-10-18T07:11:43.987 回答
0

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

于 2013-10-18T07:09:14.440 回答
0

使用时,Array.push(item)该项目始终插入在last position,它将是最后一个项目,所以

The index number will be item.length - 1.

如果你想推整数然后

numbers.push(7); // no need to use quotes('')
于 2013-10-18T07:09:27.893 回答