相关疑难解决方法(0)

Javascript:如何使用字符串数组获取对象属性?

如何使用字符串数组(属性名称)获取对象属性?(数组中的最后一个元素是object的内部属性)

请参阅以下代码:

方便的方式:

let myObject = {
    "property": {
        "subproperty": {
            "targetproperty": "Hi, We done it!"
        }
    }
};
let myString = "property:subproperty:targetproperty";
let parts = myString.split( ":" );
console.log( myObject[ parts[ 0 ] ][ parts[ 1 ] ][ parts[ 2 ] ] ); // Output: "Hi, We done it!"
Run Code Online (Sandbox Code Playgroud)

评估方式:

let myObject = {
    "property": {
        "subproperty": {
            "targetproperty": "Hi, We done it!"
        }
    }
};
let myString = "property:subproperty:targetproperty";
let parts = myString.split( ":" );
let code = …
Run Code Online (Sandbox Code Playgroud)

javascript arrays string object

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

您如何将 JavaScript 变量转换为模板文字?

我想获取我生成并存储在字符串中的文本,并将其用作模板文字。

var generatedText = "Pretend this text was generated and then stored in a variable. "; 
generatedText = "But I still need to use it as a template it to get ${variable}.";

var variable = "Successs!!!!";

console.log(generatedText);
//prints 'But I still need to interpolate it to get ${variable}.'
//how can I make it print using variable in it like a template as if it were doing this
console.log(`But I still need to use it as a template it to get …
Run Code Online (Sandbox Code Playgroud)

javascript string template-literals

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

在JS中使用string作为变量名?

如何使后面的代码工作?

var x = 'name';
Run Code Online (Sandbox Code Playgroud)

然后,使用x中的值,因为它是一个变量,并设置它,所以如果我想让它成为NAME,我将得到结果:

var name = 'NAME';
Run Code Online (Sandbox Code Playgroud)

可能吗 ?

javascript

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

在[]括号上拆分字符串

字符串是某些输入字段的名称.例子:

a[b][c]

x[y][z][]

我正在尝试从中生成多维数组.

a.b.c = value

x.y.z = [value](值是一个数组因为[])

无论如何,我有一些关于如何做到这一点的想法,但首先我需要将字符串拆分为包含所有键和子键的数组.

搜索谷歌我想出了这个

var parts = inputName.match(/[^\[\]]+/g);
Run Code Online (Sandbox Code Playgroud)

它得到了我[a,b,c],但在第二个例子我得到[x,y,z]而不是[x,y,z, null]

我还能以任何方式匹配[]并将其作为null添加到列表中吗?我对正则表达式并不熟悉


@AnnaK.为什么不能简单地使用ID和密钥发送您的信息?它是一个动态的形式吗?是因为你正在开发一个需要动态的框架吗?是因为你在多个地方使用一个功能?你不能用名字来序列化吗?我们无法给你建议,因为我们仍然不知道为什么你需要将它作为一个数组传输(无论如何都要序列化),我们仍然不知道你的表单是什么样的

因为我正在尝试使用Ajax发送表单数据.此外,在我发送数据之前,我需要预先添加一些我用javascript创建的字段.我不能序列化它,至少不能用jQuery.serializeArray它是什么意思,因为如果我有多个键x[y][z][],只有最后一个会出现

javascript regex

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

使用字符串访问嵌套属性

var person = {
  name: 'Joe',
  contact: {
    phone: '555'
  }
}

var nameOfPerson = person['name']; //Joe

var str = 'contact.phone';
var phoneToPerson = person[str]; //undefined
Run Code Online (Sandbox Code Playgroud)

这有可能以某种方式吗?我有一些逻辑,我最终得到一个字符串,我需要使用它访问嵌套属性.

https://jsbin.com/xehokozaco/edit?js,console

javascript

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

在嵌套的对象数组中按属性路径查找对象

我有这样的对象:

var obj = [
    {
      name: 'ob_1',
      childFields: [],
    },
    {
      name: 'ob_2',
      childFields: [
        {
          name: 'ob_2_1',
          childFields: [
            {
              name: 'ob_3_1',
              childFields: [],
              test: 124
            },
          ],
        },
      ],
    },
  ]

function getObjectByNamePath(path, fieds) {
    const pathArr = path.split('.');
    const result = fieds.find(field => {
      if (pathArr.length > 1) {
        if (field.name === pathArr[0] && field.childFields.length) {
          const newPath = pathArr.slice(1, pathArr.length).join('.');
          return getObjectByNamePath(newPath, field.childFields);
        }
        return false;
      } else {
        if (field.name === pathArr[0]) {
            return …
Run Code Online (Sandbox Code Playgroud)

javascript

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

以不可变的方式删除嵌套数组中的对象

所以这就是我的数据的样子:

categories = [
  {
    name: ""
    products: [
      {
        id: 1,
        ...
      },
      {
        id: 2,
        ...
      }
    ]
  },
  {
    name: ""
    products: [
      {
        id: 3,
        ...
      },
      {
        id: 4,
        ...
      }
    ]
  },
  ...
]
Run Code Online (Sandbox Code Playgroud)

我想删除 ID 为 1 的产品,这是我的代码:

categories.map(category => category.products.filter(product => product.id !== 1))
Run Code Online (Sandbox Code Playgroud)

这是正确的代码吗?如果是这样,我如何创建一个新数组并使用新值设置它?

javascript

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

通过多级字符串值获取JS对象引用

我不确定是否可以通过 JavaScript 实现这样的事情,所以我在这里寻求帮助。

我有一个字符串:

var value = 'level1.level2.level3';
Run Code Online (Sandbox Code Playgroud)

我有一个对象:

var object = {
    level1 : {
        level2 : {
            level3 : 0
        },
    },
}
Run Code Online (Sandbox Code Playgroud)

是否可以使用字符串值来获取对该对象的引用,而不仅仅是特定对象键的值。使用遍历函数和参考,以便可以使用它进行操作。

JSFiddle

我已经检查过,我确信这不是重复的问题,因为在重复版本中,解析函数的结果将是对象键值而不是对象键本身

javascript

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

嵌套对象,防止"无法获取'undefined'的值"

假设我有一个名为John的对象,里面有许多其他嵌套对象,我试图按照这种方式访问​​它们

if (john.address.highstreet) {
    var highstreet = john.address.highstreet
}
Run Code Online (Sandbox Code Playgroud)

但如果address属性为null,那么我将收到错误

unable to get property 'highstreet' of undefined
Run Code Online (Sandbox Code Playgroud)

并且我的函数执行停止

有没有一种方法可以访问嵌套属性,而无需使用如下所示的许多嵌套if语句:

if (john.address) {
    if (john.address.highstreet) {
        var highstreet = john.address.highstreet
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript json

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

Javascript从字符串键解析对象键值

我有自定义对象

var user = {
  name: "John",
  lastname: "Doe",
  details: {
    age: 33,
    gender: "male",
    education: {
      university: "Oxford"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我需要一个可以从字符串中解析对象键的函数。例如函数参数:

getObjectKeyValue("details.age") // 33
getObjectKeyValue("details.education.university") // Oxford
Run Code Online (Sandbox Code Playgroud)

如何实现像这样的函数,从基于字符串点的键中获取对象键值?

javascript

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

标签 统计

javascript ×10

string ×2

arrays ×1

json ×1

object ×1

regex ×1

template-literals ×1