地图中的Javascript变量评估

chu*_*ckg 14 javascript jquery

我试图通过jQuery传递一些数据$.post(),我遇到了一些问题,我只能归类为数据映射中的变量评估.让我们来看看:

var field = 'fooVar';
var value = 'barVar';
$.post('/path/to/url', { field:value, 'fooString':'barString' });
Run Code Online (Sandbox Code Playgroud)

最终结果是具有以下值的POST:

// Actual result
field = barVar
fooString = barString

// Expected result    
foo = barVar
fooString = barString
Run Code Online (Sandbox Code Playgroud)

我希望在数据图中将"field"评估为变量"foo",但事实并非如此.我能够辨别的是"key"上的单引号是可选的,因此将它们排除不会导致变量被评估.

我还尝试了以下几个运气量的咯咯笑声:

$.post('/path/to/url', { "'" + field + "'":value, 'fooString':'barString' });
$.post('/path/to/url', { eval(field):value, 'fooString':'barString' });
Run Code Online (Sandbox Code Playgroud)

我很难过.感谢您提供的任何帮助,甚至只是一个坚定的"不",这样我就可以继续我的生活,知道一个更精通的人,我的背后会受到赞赏.:)

Ske*_*lan 10

var field = 'fooVar';
var value = 'barVar';
var postData = {};
postData[field] = value;
postData['fooString'] = 'barString';
$.post('/path/to/url', postData);
Run Code Online (Sandbox Code Playgroud)

即使确实存在着一个方法来组织这个内嵌(如你希望在这里),你最好做什么你通过事先建立的对象之后-看到这个Encosia文章


chu*_*ckg 2

这是一个可能的答案。

var field = 'fooVar';
var value = 'barVar'

var data = { fooString:'barString' }
data[field] = value;

$.post('/path/to/url', data);

// Result
fooVar = barVar
fooString = barString    
Run Code Online (Sandbox Code Playgroud)

不过,我仍然很好奇这是否可以内联完成(就像在原始示例中一样)而不是事先构建地图。