如何在接收数组和函数(convertFunc)的JavaScript中编写函数。该函数为数组的每个元素调用convertFunc。 应该通过 this 关键字访问该元素。 该函数应该返回convertFunc调用的返回值数组? 例如
function(array, convertFunc() { // array=[1,2,3]
return this+10;
}
应该返回[11,12,13]
由于
答案 0 :(得分:2)
function map(arr, convertFunc) {
arr
的所有元素。}
自己计算确切的细节,祝你好运:)
答案 1 :(得分:0)
array.map(callback[, thisObject]);
可能适合您。
示例:
var nums = [1,2,3];
function FuncName(x)
{
return x+10;
}
var result = nums.map(FuncName); //[11,12,13]
答案 2 :(得分:0)
如果您正在寻找扩展Array对象
,请尝试此操作Array.prototype.convertFunc = function() {
var arr = this, i; // As you want array is access using the this keyword.
for(i = 0; i<arr.length; i++)
{
arr[i] = arr[i] + 10;
}
return arr;
}
var myArray = [1,2,3];
// Call like this
myArray.convertFunc();
<强>更新强>
要回答你的问题,试试这个
// Pass your array and a function as parameter
function arrayModify(array, convertFunc)
{
return array.convertFunc();
}
// This function iterates your array and adds 10 to each element.
var arrayAddFunction = function() {
var arr = this, i;
for(i = 0; i<arr.length; i++)
{
arr[i] = arr[i] + 10;
}
return arr;
}
// Extending the array object
Array.prototype.convertFunc = arrayAddFunction;
var aa = [1,2,3];
// As you want send your array and a function as parameters to another function
alert(arrayModify(aa,arrayAddFunction)); // -> [11, 12, 13]
答案 3 :(得分:0)
var myFunc = function(fn) { // array=[1,2,3]
return fn(this);
};
myFunc.call(arr,function convertFunc(){
return this+10;
});
但是,要解决您的确切问题:
var arr = [1,2,3], addTen = function(){
for (var l=this.length;l--;) this[l] += 10;
};
addTen.call(arr);