相关疑难解决方法(0)

对列表/数组中的每个项运行相同的函数

目标

我有一个工作函数(JSFiddle).在整个脚本中的许多场合,该函数按顺序运行.在这些情况下,我想整合很多重复的代码.

理想情况下更改代码如下:

functionName("First_item") + 
functionName("Second_item") + 
functionName("Third_item") + 
Run Code Online (Sandbox Code Playgroud)

对于这样的事情:

functionName("First_item", "Second_item", "Third_item");
Run Code Online (Sandbox Code Playgroud)

该函数将针对列表中的每个项运行,因此结果相同但代码更加优雅和可维护.

笔记:

  • 我不打算使用任何库(例如jQuery)来实现目标.

  1. Amit Joki的回答请注意我可以使用参数.当我实现代码时,修改后的函数(JSFiddle)只返回output第一个参数/ item 的字符串.

  2. Vanice的回答指出了最终的解决方案.

    • 通过连接(连接)outputfor循环中的字符串(使用+=),从所有参数/项的输出中创建一个字符串.
    • 通过放置returnfor循环的外部来返回连接的输出.

工作解决方案(JSFiddle).


谢谢

非常感谢大家的时间和帮助.对此,我真的非常感激!

javascript function

3
推荐指数
1
解决办法
5475
查看次数

Javascript:将数组推入数组与将值推入数组?

我是 javascript 新手,不太了解 push() 方法的工作原理。

我有两个空数组,row 和 newData。以及输出非常不同的两段代码:

for (i = 1; i <= 10 ; i++) {
    row[0] = i;
    newData.push(row);
}
Run Code Online (Sandbox Code Playgroud)

导致 newData == [10,10,10,...,10],我觉得这非常令人惊讶,并且

for (i = 1; i <= 10 ; i++) {
    newData.push(i);
}
Run Code Online (Sandbox Code Playgroud)

结果 newData == [1,2,3,...,8,9,10] 这是预期的结果。

但我不明白为什么当第二个循环按预期工作时,第一个循环的每次迭代似乎都用最后一个元素替换 newData 的每个元素?

谢谢!

javascript arrays

3
推荐指数
1
解决办法
1万
查看次数

JAVASCRIPT - 为什么这个对象没有改变?

function myFunc(theObject) {  
  theObject = {make: "Ford", model: "Focus", year: 2006};  
}  
var mycar = {make: "Honda", model: "Accord", year: 1998};  
var x = mycar.make;     // returns Honda  
myFunc(mycar);  
var y = mycar.make;     // still returns Honda  
Run Code Online (Sandbox Code Playgroud)

为什么myFunc不改变mycar对象?

javascript object

2
推荐指数
1
解决办法
256
查看次数

Javascript函数,它接受可变数量的参数 - 更改它们的值 - 然后返回它们

我是Javascript的新手(以及一般的编程),并且一直在寻找一种使用Javascript函数更改任意数量的aguments值的方法.

这里的答案(函数的JavaScript变量数量)非常有用.我能够用它来创建我需要的两个功能,但是我遇到了第三个功能.

基本上我想将一个可变数量的对象(原始的或更复杂的)传递给一个函数,并让函数改变每个对象的值.

var pants = true;
var house = true;
var hair = {/* lots of stuff */};

var onFire = function() {
        for (var i = 0; i < arguments.length; i++) {
            arguments[i] = false;
        }
};

onFire(pants, house, hair);
Run Code Online (Sandbox Code Playgroud)

控制台输出:

>pants;
 true

>house;
 true

>hair;
 Object
Run Code Online (Sandbox Code Playgroud)

我如何制定这个函数,结果如下:

>pants;
 false

>house;
 false

>hair;
 false
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

编辑:

澄清事情 - 我正在尝试创建一个可重用的辅助函数,它可以更改传入的任何对象的值,false而不是键入:

var a1 = false;
var a2 = false;
...
var a+n = false; …
Run Code Online (Sandbox Code Playgroud)

javascript arguments function

2
推荐指数
1
解决办法
453
查看次数

在 JavaScript 中制作全局变量的本地副本

根据这个问题,如果我将全局变量作为参数传递给函数,则该全局变量将成为本地副本。

如果是这样,为什么这个 jfiddle 的行为方式如此?警报dog, cat不应该显示而不仅仅是显示cat吗?

我什至比示例更进一步,专门将全局变量复制到局部变量中,但结果是一样的。我真的很希望能够shift()在保持全局完整的同时进行本地化。

javascript

2
推荐指数
1
解决办法
3601
查看次数

将全局变量的引用传递给函数

是否可以将全局变量的链接发送到 JavaScript 中的函数? 这个答案说不,但我不敢相信,没有解决方法。

我的意思是类似以下内容。它不起作用,但它可以解释我的意思:

var data_1;
var data_2;

fillValue(data_1,"First");
fillValue(data_2,"Second");

function fillValue(link2GlobalVar, value){
    link2GlobalVar = value;
}   

console.log(data_1);
console.log(data_2);
Run Code Online (Sandbox Code Playgroud)

如果能在控制台输出就太好了

First
Second
Run Code Online (Sandbox Code Playgroud)

您知道将全局变量发送到函数并在函数中更改它们的技巧吗?

参见小提琴

javascript global-variables parameter-passing

2
推荐指数
1
解决办法
193
查看次数

将数组转换为对象数组

如何用键转动此数组

> dd
[ 'DeviceName',
  'counter1',
  'counter2',
  'counter3',
  'counter4' ]
Run Code Online (Sandbox Code Playgroud)

用对象进入这个对象数组

[
    { data: 'DeviceName' },
    { data: 'counter1' },
    { data: 'counter2' },
    { data: 'counter3' },
    { data: 'counter4' }
]
Run Code Online (Sandbox Code Playgroud)

我试过这个函数,但问题是数据键在它们中都是一样的.

有没有解决的办法?

 newdd=function toObject(arr) {
      var rv = {};
      var a =[];
        for (var i = 0; i < arr.length; ++i) {
        rv["data"] = arr[i];
        a.push(rv);
        }
      return a;
    }
Run Code Online (Sandbox Code Playgroud)

这给了我:

> newdd(dd)
[ { data: 'counter4' },
  { data: 'counter4' },
  { data: 'counter4' },
  { …
Run Code Online (Sandbox Code Playgroud)

javascript arrays object

2
推荐指数
1
解决办法
56
查看次数

javascript删除关键字无法正常工作

我觉得这真的很奇怪,我是json通过 http 发送的。

{
   "foo":"bar",
   "foo2":"bar2",
   "name":{
       "firstName":"Joff",
       "middleName":"Ramirez",
       "lastName":"Tiquez"
   }
}
Run Code Online (Sandbox Code Playgroud)

在服务器上我正在执行这些命令:

var data = req.body; // the json from http
console.log('data', data); // the data now has the req.body's value 
delete data.name; // <-- here's the delete
console.log('data', data); // the name object will obviously be deleted
console.log('req.body', req.body); // the name on the req.body was deleted too. Wtf?
Run Code Online (Sandbox Code Playgroud)

req.body.name因此,当我尝试在程序的其他部分使用 时,name现在已经消失了。那是delete应该如何工作吗?

javascript

2
推荐指数
1
解决办法
1739
查看次数

我混淆使用javascript数组

var x = [1, 2, 3, 4, 5, 6];

function change1(y) {
  y[0] = 7;
  y[1] = 8;
  y[2] = 9;
  y[3] = 10;
  y[4] = 11;
  y[5] = 12;
}
change1(x);
console.log(x);

var z = [1, 2, 3, 4, 5, 6];

function change2(y) {
  y = [7, 8, 9, 10, 11, 12];
}
change2(z);
console.log(z);
Run Code Online (Sandbox Code Playgroud)

输出:

7,8,9,10,11,12 1,2,3,4,5,6
Run Code Online (Sandbox Code Playgroud)

我无法理解上面的代码为什么change1()函数可以改变传递的数组而change2()函数不能.

为什么断线不起作用?

谢谢

html javascript

2
推荐指数
1
解决办法
76
查看次数

如何将多个组件 props 中的数据绑定到主应用程序?

向阅读本文的任何人致以问候。我想先说一下,我对 Svelte 和整个组件框架都很陌生。这实际上是我开始学习的第一个框架。

我一直在学习一个教程,在教程的某些部分,我喜欢制作一些小东西,其中包含我刚刚学到的内容,以进一步熟悉这些材料。

最近,我开始学习组件和组件属性,并决定创建一个应用程序,该应用程序在表单中接收各种输入,然后通过将其记录到控制台来提交该表单。

正是在这样做的过程中,我注意到一些有趣的行为,我设法在为了编写这个问题而制作的单独应用程序中复制这些行为。

应用程序.svelte

<script>
  import Name1 from "./lib/Name1.svelte";
  import Name2 from "./lib/Name2.svelte";

  const obj = {
    fullname: {
      fName: '',
      lName: ''
    },

    fName: '',
    lName: ''
  }
</script>

<main>
  <Name1 fullName = {obj.fullname} />
  <br><br>
  <Name2 fName = {obj.fName} lName = {obj.lName} />
  <br><br>
  <button on:click={() => (console.log(obj))}>Log Data</button>
</main>

<style>
  :root {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
      Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
  }

  main {
    text-align: center;
    padding: 1em;
    margin: …
Run Code Online (Sandbox Code Playgroud)

svelte

2
推荐指数
1
解决办法
1555
查看次数