//如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1
function indexOf(arr, item) {
if(Array.prototype.indexOf){
return arr.indexOf(item)
}else{
for(var i=0;i<arr.length;i++){
if(arr[i] === item){
return i;
}
}
}
return -1
}
indexOf([ 1, 2, 3, 4 ], 3)
//移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果
//返回新的数组
function remove(arr, item) {
var res = [];
for(var i=0;i<arr.length;i++){
if(arr[i]!==item){
res.push(arr[i]);
}
}
return res;
}
remove([1, 2, 3, 4, 2], 2)
//移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行
//操作,并将结果返回
function removeWithoutCopy(arr, item) {
for(var i=0;i<arr.length;i++){
if(arr[i] == item){
arr.splice(i,1)
i--;
}
}
return arr
}
//合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组
function concat(arr1, arr2) {
var res = [];
if(arguments.length>0){
for(var i=0;i<arguments.length;i++){
if(arguments[i] instanceof Array){
res.push(arguments[i])
}
}
}
return res.join(',').split(',')
}
//在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回
//新的数组
function insert(arr, item, index) {
var a = [].concat(arr)
a.splice(index, 0, item)
return a
}
//统计数组 arr 中值等于 item 的元素出现的次数
function count(arr, item) {
var num = [];
for(var i=0;i<arr.length;i++){
if(arr[i] == item){
num.push(arr[i])
}
}
return num.length;
}
//找出数组 arr 中重复出现过的元素
function duplicates(arr) {
var res = [];
var db = [];
for(var i=0;i<arr.length;i++){
if(!db[arr[i]]){
db[arr[i]] = 1;
continue;
}else{
db[arr[i]]++;
}
}
for(var j=0;j<db.length;j++){
if(db[j]>1){
res.push(j)
}
}
return res
}