item = ['1,5,2'];
item.sortInt(item);
item.push('7');
//得到7的索引号?http://jsfiddle.net/dPwQA/6/
item = ['1,5,2'];
item.sortInt(item);
item.push('7');
//得到7的索引号?http://jsfiddle.net/dPwQA/6/
try var index = item.push(7)-1;
push 方法返回数组的长度,并且总是在末尾添加新项目。
你也可以使用item.indexOf(7)
. 但它返回第一次出现 7 的索引,因此当您的数组中有重复条目时它没有用。
注意:item = ['1,5,2'];
将添加一个字符串。应该添加喜欢item = [1,5,2];
为新推送的项目拉出一个变量,它将包含数组的长度,因此从中减去一个。
像这样:
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/
希望这可以帮助!
当您推送它应该是整数而不是字符串的数字时,请删除引号
$('button').click(function () {
numbers.push(4);//remove the quotes
numbers.sort(sortInt);
$('#text').text(numbers.toString());
getIndexOfNewlyItem();
});
你的代码有问题
你在推numbers.push('4');
字符串
并提醒alert(numbers.indexOf(4));
Integer
由于这种类型不匹配,您得到-1
.
解决方案
DEMO
numbers.push(4);
push as Integer
来自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
item.length - 1
将始终是最后一项的索引。 Array.push
还返回数组的新长度,因此您可以从中减去。
使用时,Array.push(item)
该项目始终插入在last position
,它将是最后一个项目,所以
The index number will be item.length - 1.
如果你想推整数然后
numbers.push(7); // no need to use quotes('')