如何使用字符串数组(属性名称)获取对象属性?(数组中的最后一个元素是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) 我想获取我生成并存储在字符串中的文本,并将其用作模板文字。
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) 如何使后面的代码工作?
var x = 'name';
Run Code Online (Sandbox Code Playgroud)
然后,使用x中的值,因为它是一个变量,并设置它,所以如果我想让它成为NAME,我将得到结果:
var name = 'NAME';
Run Code Online (Sandbox Code Playgroud)
可能吗 ?
字符串是某些输入字段的名称.例子:
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][],只有最后一个会出现
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)
这有可能以某种方式吗?我有一些逻辑,我最终得到一个字符串,我需要使用它访问嵌套属性.
我有这样的对象:
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) 所以这就是我的数据的样子:
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 实现这样的事情,所以我在这里寻求帮助。
我有一个字符串:
var value = 'level1.level2.level3';
Run Code Online (Sandbox Code Playgroud)
我有一个对象:
var object = {
level1 : {
level2 : {
level3 : 0
},
},
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用字符串值来获取对该对象的引用,而不仅仅是特定对象键的值。使用遍历函数和参考,以便可以使用它进行操作。
我已经检查过,我确信这不是重复的问题,因为在重复版本中,解析函数的结果将是对象键值,而不是对象键本身。
假设我有一个名为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) 我有自定义对象
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)
如何实现像这样的函数,从基于字符串点的键中获取对象键值?