首页 > 试题广场 >

添加元素

[编程题]添加元素
  • 热度指数:128195 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
在数组 arr 末尾添加元素 item。结果返回新的数组。
注意:不要直接修改数组 arr!!!

输入描述:
[1, 2, 3, 4],  10


输出描述:
[1, 2, 3, 4, 10]
示例1

输入

[1, 2, 3, 4],  10

输出

[1, 2, 3, 4, 10]
/**
 * 使用join+split+push组合
 * @param arr
 * @param item
 * @returns {Array}
 */

function append(arr, item) {
    var newArr=arr.join().split(',');
    newArr.push(item);
    return newArr;
}

/**
 * 使用unshift.apply
 * @param arr
 * @param item
 * @returns {Array}
 */

function append(arr, item) {
    var newArr=[item];
    [].unshift.apply(newArr, arr);
    return newArr;
}

编辑于 2016-08-28 17:04:16 回复(3)
function append(arr, item) {
//利用数组的length属性可以很好的为数组的末尾添加元素
    var newarr = arr.slice(0);    newarr[newarr.length] = item;
    return newarr;
}

编辑于 2017-10-31 22:10:05 回复(0)
function append(arr, item) {
 var result = arr.concat(item);
    return result;
}

发表于 2015-08-25 10:21:13 回复(0)
function append(arr, item) {
    return arr.concat(item);
}
发表于 2021-12-13 11:20:45 回复(0)
function append(arr, item) {
    return new Array(...arr,item);
}
发表于 2021-10-11 19:53:31 回复(0)
function append(arr, item) {
    // 就这?就这?
    if(arr.concat) return arr.concat(item)
    // 没想到吧,嘿嘿
    if(arr.reduce) return arr.reduce((acc, cur) => {
        acc.unshift(cur)
        return acc
    }, [item])
    // 哦豁。。。你牛
    if(Array.from) return Array.from(arr).push(item)
    // 还有 ?
    if(arr.slice) return arr.slice().push(item)
    // 没招了求放过
    return [...arr].push(item)
}

发表于 2021-08-25 09:15:08 回复(0)
concat()连接两个数组
function append(arr, item) {
return arr.concat(item);
}

发表于 2021-08-22 18:27:59 回复(0)
function append(arr, item) {
    return [...arr, item]
}

发表于 2021-08-08 00:13:28 回复(0)
//使用es6的解构
function append(arr, item){
    //使用...扩展运算符将arr里面的元素取出放到一个新的数组里面
    return [...arr, item]
}
发表于 2020-09-29 18:34:14 回复(0)
一句就ok了
function append(arr, item) {

    return [...arr,item];
    
}
发表于 2020-07-18 12:08:21 回复(0)
function append(arr, item) {
 var arr1 = [item];           //将要插入的元素item添加到新数组arr1中
 var arr2 = arr.concat(arr1);  //使用concat方法连接arr与arr1并赋值给新数组arr2
    return arr2;               //返回arr2
} 

发表于 2020-04-07 22:46:28 回复(0)
function append(arr, item) {
  return [...arr,item]
}


发表于 2020-04-02 23:15:19 回复(0)
function append(arr, item) {
    arr_1 = arr.slice(0);
    if (item != null){
        arr_1.push(item);
    }
    
    return arr_1;
}
发表于 2020-03-24 11:52:19 回复(0)
function append(arr, item) {
var brr = arr.slice(0);
    brr[brr.length] = item;
    return brr;
}
append([1,2,3,4,],10);

这个题除了其他朋友的解法,还可以从数组本身从发,考虑到是最后添加
第一步:进行复制数组
第二步:利用数组的length属性在最后直接添加元素

发表于 2020-03-11 20:59:19 回复(0)

function append(arr, item) {
   //slice(参数1,参数2)
   //参数1:复制的起点,参数2,:复制的终点,没有代表复制到最后
    var newArr = arr.slice(0);//作用:复制数组,防止修改影响到原数组变化
   //splice(参数1,参数2,参数3)
   //参数1:开始添加或删除起点,参数2:删除几个,0表示不删除,参数3:添加的内容
    newArr.splice(arr.length,0,item);//也可以newArr.push(item);
    return newArr;
}




编辑于 2019-09-10 11:19:01 回复(0)
function append(arr, item) {
    let newArray = [...arr];
    newArray.push(item);
    return newArray;
}

发表于 2019-09-09 13:27:03 回复(1)
function append(arr, item) {
    var newArr = [...arr];
    newArr.push(item);
    return newArr;
}
没人用ES6的拓展运算符?
发表于 2019-08-24 09:11:18 回复(0)
function append(arr, item) {
var newarr = [].concat(arr);
    newarr.push(item);
    return newarr ;
}


发表于 2018-04-17 13:07:00 回复(0)
function append(arr, item) {
var arr1=arr.concat(item);
return arr1;
}

concat(),slice(),map(),tostring()不会改变原数组
编辑于 2017-09-10 21:43:35 回复(0)
function append(arr, item) {
	return arr.concat(item);
}

编辑于 2017-04-11 15:14:37 回复(0)