想手动实现concat()方法,实现过程中除了concat()其他方法可以随意调用,但实现不出来,求助~~
Array.prototype.test = function() {
var arr = JSON.parse(JSON.stringify(this)); // 用JSON可以深度拷贝数组
for (var i = 0; i < arguments.length; i++) {
var argo = arguments[i];
for ( var j = 0; j < argo.length; j++ ) {
arr.push(argo[j]);
}
};
return arr;
}
var arr1 = [1,2,3], arr2 = ['a','b','c'];
console.log(arr1.test(arr2));
console.log(arr1);
console.log(arr2);
要这样?
<script type="text/javascript">
function concat() {
var arr = [];
for (var i = 0; i < arguments.length; i++) {
arr.push(arguments[i]);
};
return arr.toString().replace(/,/g, '');
}
var foo = concat('hi ', 'jack', 111); //随便输入任意数量字符串参数
console.log(foo);
</script>
var a = [1, 2, 3];
var b = [3, 4, 5];
var c = {a:1};
function concats(){
var arr = [];
for (var i=0, lens=arguments.length; i<lens; i++){
for (var j=0, len=arguments[i].length; j<len; j++){
arr.push(arguments[i][j]);
}
}
return arr;
}
console.log(concats(a, c, b));
如果参数里没有二维数组可以试试这样
function concat() {
var args = Array.prototype.slice.call(arguments,0),
array = [];
args.forEach(function(item){
array.push(item);
})
return array.join(",").split(",");
}
正好在重新学习javascript 高程,
发现推荐答案写法有点问题,更改如下,自测暂时没有问题,如有请指出,谢谢
Array.prototype.concat1 = function () {
let arr = this.slice(0);
arguments.length && [].forEach.call(arguments,(value) => {
if (Array.isArray(value)) {
value.forEach(val => {
arr.push(val);
})
} else {
arr.push(value);
}
})
return arr;
};
function arrayConcat(arr1, arr2) {
var newArr = new Array();
var median;
for (var i = 0; i < arguments[0].length; i++) {
median = arguments[0][i];
newArr[i] = median;
}
for (var i = 0; i < arguments[1].length; i++) {
median = arguments[1][i];
newArr[arguments[0].length + i] = median;
}
return newArr;
}
console.log(arrayConcat([1, 2, 3, 5, 9], [4, 5, 6, 88, 9]));
13 回答12.8k 阅读
7 回答2k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答918 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决