使用此功能,我创建一个列表:
var array = [];
var oldarray = [];
function port1() {
oldarray.push('Port '+parseFloat(document.getElementsByClassName(mylist.name)[1].getAttribute('id'))+': '+mylist.name);
document.getElementById('text').textContent = array;
$.each(oldarray, function(i, el){
if($.inArray(el, array) === -1) array.push(el);
});
}
我想让最新的条目添加到数组的最后一个索引中,最旧的添加到数组的开头。而且,如果再次有一个条目,则该条目应仅在数组中出现一次,但索引必须“刷新”,以便该条目再次位于数组的最后位置。
答案 0 :(得分:3)
您可以测试element
中array
是否存在,如果存在,则将其删除并最后push
,否则只需push
。
这应该是您的功能:
function port1(arr, el) {
let ind = arr.indexOf(el);
if (ind > -1)
arr.splice(ind, 1);
arr.push(el);
}
演示:
这是一个有效的演示:
var array = [12, 5, 3, 6];
function port1(arr, el) {
let ind = arr.indexOf(el);
if (ind > -1)
arr.splice(ind, 1);
arr.push(el);
}
port1(array, 4);
port1(array, 5);
port1(array, 12);
console.log(array);
答案 1 :(得分:2)
类似
function addEntry(array, entry) {
var entryIndex = array.indexOf(entry);
if(entryIndex > -1) {
array.splice(entryIndex, 1); // Remove the entry from its original position.
}
array.push(entry); // Add to the end of the array.
}
var array = ['Hello', 'World'];
console.log(array);
addEntry(array, 'This is new');
console.log(array);
addEntry(array, 'Hello');
console.log(array);
应该为您工作。此示例输出
[ 'Hello', 'World' ]
[ 'Hello', 'World', 'This is new' ]
[ 'World', 'This is new', 'Hello' ]
请注意,该数组已就地更改。
答案 2 :(得分:0)
感谢您的帮助,您的解决方案确实为我提供了帮助。我也尝试了这种解决方案,它似乎有效。也许不是最好的解决方案,但我想添加一个。坦克的! :)
var array = ['bye bye', 'hello guys', 'good morning'];
var entry = 'bye bye';
if (array.includes(entry)) {
array.splice(array.indexOf(entry),1);
array.push(entry);
}