相关疑难解决方法(0)

在coffeescript中以编程方式/"by string"调用函数

可能重复:
动态对象属性名称

我有一个功能,我需要根据用户输入的数据调用.

例如,我有:

models.cat
models.dog
Run Code Online (Sandbox Code Playgroud)

现在,我希望能够在models.[my_str]哪里打电话my_str = "snake".所以计算机会认为它正在尝试执行models.snake.有没有办法在javascript或更好的coffeescript中做到这一点?

javascript coffeescript

5
推荐指数
1
解决办法
2815
查看次数

如何从 json 获取带有动态变量的对象值

我想从 JSON 中获取对象字段的值。我有一个动态变量let check_permission_key = 'ratingscalename';和一个 JSON

let overwrite_key = {
  studentimage: 'student',
  ratingscalename: 'rating-scale-name',
  ratingscale: 'rating-scale-name',
  capturesettingset: 'capture-setting-set',
  capturesetting: 'capture-setting-set',
  eventlog: 'event-log',
  goalcategorie: 'goal-category',
  userimage: 'user',
  datasheetlink: 'datasheet',
  datasheetgoal: 'datasheet',
};

let get_value = overwrite_key.check_permission_key;
Run Code Online (Sandbox Code Playgroud)

所以我正在像这样获取数据,但它不起作用,有人可以帮我解决这个问题吗?

javascript jquery node.js

5
推荐指数
1
解决办法
4261
查看次数

npm 发布失败,“路径”参数必须是字符串类型。收到未定义”

我有一个在私有 npm 存储库上发布的项目。在 下node v14.16.0 (npm v6.14.11),命令npm publish运行良好,我的包发布在我的私有存储库中。

我将 npm 升级到 7 以支持对等依赖项安装。现在在 下node v15.12.0 (npm v7.6.3),命令npm publish失败

“路径”参数必须是字符串类型。收到未定义

任何的想法?

更新

npm 7.6.3 与节点 14 效果相同:

“路径”参数必须是字符串类型

更新 2

带标志的控制台输出 --verbose

npm 动词 cli [ npm 动词 cli
'.nvm/versions/node/v15.12.0/bin/node', npm 动词 cli
cafile 0ms 内完成 npm 计时 config:load:validate 0ms 内完成 npm 计时 config:load:setUserAgent 1ms 内完成 npm 计时 config:load:setEnvs 0ms 内完成 npm 计时 config:load 18ms 内完成 npm 动词 npm-session 83e5ee6d9b1b9659 npm:load 在 82 …

node.js npm npm-publish

5
推荐指数
1
解决办法
1688
查看次数

在Javascript中使用变量的字符串作为JSON的属性名?

所以我通过AJAX抓取一个JSON,但需要重新配置它.部分原因是使用变量中包含的字符串作为嵌套对象的属性名称.

但Javascript不允许这样做.它将变量视为文字字符串,而不是读取值.

这是一个片段:

var pvm.exerciseList = [];

$.get('folder_get.php', function(data){
    var theList = $.parseJSON(data);
    $.each(theList, function(parentFolder, files) {
        var fileList = [];
        $.each(files, function(url, name) {
            thisGuy.push({fileURL: url, fileName: name});
        });
        pvm.exerciseList.push({parentFolder: fileList});
    });
});
Run Code Online (Sandbox Code Playgroud)

有没有办法解决?我需要提取"parentFolder"中包含的字符串.现在,JS只是从字面上解释它.

javascript string variables

4
推荐指数
1
解决办法
5755
查看次数

如何从javascript对象获取属性值

我有一个JavaScript对象.

var obj = { Id: "100", Name: "John", Address: {Id:1,Name:"Bangalore"} }
var dataToRetrieve= "Name";

function GetPropertyValue(object,dataToRetrieve){
      return obj[dataToRetrieve]
}
var retval = GetPropertyValue(obj,dataToRetrieve)
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,如果我尝试获取"Address.Name"的属性值的值,

喜欢:var dataToRetrieve = "Address.Name"; 它表明undefined.

注意:属性变量由用户从HTML设置并且可以根据用户要求(他想要的属性值)进行更改.

我想要实现的目标:

1)如果dataToRetrieve = "Name",它应该给我"John",

2)如果dataToRetrieve = "Id",它应该给我"100",

3)如果dataToRetrieve = "Address.Name",它应该给我"Bangalore",

4)如果dataToRetrieve = "Address.Id",它应该给我1

Plunkr在这里:PLUNKR

javascript arrays jquery javascript-objects dom-events

4
推荐指数
2
解决办法
8957
查看次数

Vue.js访问具有不确定名称的变量

我想知道是否可以从vue的数据集中访问变量,但是只能通过另一个变量指定变量名。这就是我的意思:

我的一些变量/属性:

var siteAdminVue = new Vue({
  el: "#siteAdmin",
  data: {
    tagtitle: "",
    tagparent: "",
    tagdesc: "",
    badgestitle: "",                    
    badgesdesc: "",               
    badgesprivilege: 0,                  
    newstitle: "",                    
    newsnotify: false,                  
    newscontent: "", 
}             
Run Code Online (Sandbox Code Playgroud)

现在,我想在vue中的一种方法中设置其中一些属性:

  var self = this;
  var type = currentSection.toString().substr(4);
  var selectElement = document.getElementById(currentSection + "select");

  // name of vue property, for example newstitle
  var titleElement = type + "title";    

  self.[titleElement]= selectElement.value;
Run Code Online (Sandbox Code Playgroud)

我不想使用switch语句来检查是否需要设置新闻标题,徽章标题等,因此我想我可以将名称存储在已经在vue中定义的变量中,然后进行设置。有没有办法做到这一点?

提前致谢

javascript variables vue.js

4
推荐指数
1
解决办法
1229
查看次数

使用动态密钥获取反应状态

我已经知道如何使用动态密钥名称setState但是如何将值设置为具有动态密钥的状态?

function thing(key) {
 let stuff = this.state.key;

 //Do stuff
}
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

4
推荐指数
1
解决办法
7918
查看次数

How to dynamically change a function's name

I have a function which acts as a sort of focal point before calling my api.

I want to reduce the bloat a little by simplifying my if statements.

Currently I have a list of statements. 2 of which are shown below

    if (this.props.source === 1) {
      api.updateData01(id, data).then(res => {
        this.hideModal()
        this.props.updateData01()
        console.log('DATA UPDATED')
      })
    }
    if (this.props.source === 2) {
      api.updateData02(id, data).then(res => {
        this.hideModal()
        this.props.updateData02()
        console.log('DATA UPDATED')
      })
    }
Run Code Online (Sandbox Code Playgroud)

我想通过调出if语句来简化它,而是动态地重命名这些函数。

遵循以下原则

    if(this.props.source === 1){
      //rename updateData to …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

4
推荐指数
1
解决办法
100
查看次数

用汉语作为对象的关键

如何使用中文字符或数字作为对象的键,如下所示:

var obj = { ?: 'me',  20: 'you' };   

console.log(obj.?);  // me
console.log(obj[?]); // -> Reference Error: ? is not defined

console.log(obj[20]); // you
console.log(obj.20);  // ->Syntax Error: Unexpected number
Run Code Online (Sandbox Code Playgroud)

javascript object

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

Javascript对象键作为变量

我有一个对象:

let object1 = { a: 'one', b: 'two', c: 'three' };
Run Code Online (Sandbox Code Playgroud)

我正在尝试将object1.a设置为object2的键:

object2 = { key: 'something' };
Run Code Online (Sandbox Code Playgroud)

我试图把钥匙作为:

[object1].a

object1.a

object1[a]
Run Code Online (Sandbox Code Playgroud)

我记得我必须使用括号表示法,但无法弄清楚如何做到这一点?

我想这样做的原因是因为我要根据道具改变object1的值,所以我可以只根据收到的道具改变一个组件.

javascript

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