Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
For循环不使用JavaScript函数中的参数_Javascript_Function_For Loop_Parameters_Arguments - Fatal编程技术网

For循环不使用JavaScript函数中的参数

For循环不使用JavaScript函数中的参数,javascript,function,for-loop,parameters,arguments,Javascript,Function,For Loop,Parameters,Arguments,我正在尝试在server.js文件中运行此函数: function formatArr (targetArr, characteristic, formattedArr) { console.log(characteristic); for (var i = 0; i < targetArr.length; i++) { formattedArr.push({characteristic:targetArr[i]}) }; return fo

我正在尝试在server.js文件中运行此函数:

function formatArr (targetArr, characteristic, formattedArr) {
    console.log(characteristic);
    for (var i = 0; i < targetArr.length; i++) {
        formattedArr.push({characteristic:targetArr[i]})
    };
    return formattedArr;
};
它不记录控制台的“大小”,但不会用formattedSize数组中的单词大小替换单词特征。以下是我在服务器控制台中得到的信息:

size
[ { characteristic: 's' },{ characteristic: 'm' },{ characteristic: 'l' } ]
如何使其在阵列中用大小替换特征?这是我想要的输出:

size
[ { size: 's' },{ size: 'm' },{ size: 'l' } ]
我希望能够将formatArr函数与其他特性一起重用。

您应该将其用于变量属性名称:

function formatArr (targetArr, characteristic, formattedArr) {
    console.log(characteristic);
    for (var i = 0; i < targetArr.length; i++) {
        var obj = {};
        obj[characteristic] = targetArr[i];
        formattedArr.push(obj);
    };
    return formattedArr;
};
函数formattarr(targetar、characteristic、formattedArr){
控制台日志(特征);
对于(变量i=0;i
有点罗嗦,但还是很无聊。如果您处于ES2015友好环境中,则可以使用较短的语法:

for (var i = 0; i < targetArr.length; i++) {
    formattedArr.push({[characteristic]: targetArr[i]});
};
for(变量i=0;i
试试这个:

function formatArr (targetArr, characteristic, formattedArr) {
    for (var i = 0; i < targetArr.length; i++) {
        var obj = {};
        obj[characteristic:targetArr] = targetArr[i]
        formattedArr.push(obj)
    };
    return formattedArr;
};
函数formattarr(targetar、characteristic、formattedArr){
对于(变量i=0;i
在非常新的JavaScript环境中,您可以编写:

    formattedArr.push({ [characteristic]: targetArr[i] })

否则,您必须按照@dfsq的回答逐步构建对象。

这很酷。我不知道!谢谢每天学习新的东西。我们在同一时间发布了几乎相同的答案,对于思维相似的伟人,我会+1你,但我今天的选票刚刚用完!=]
    formattedArr.push({ [characteristic]: targetArr[i] })