item = ['1,5,2'];
item.sortInt(item);
item.push('7');
//索引号为7? http://jsfiddle.net/dPwQA/6/
答案 0 :(得分:3)
答案 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();
});
答案 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
答案 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('')