如何使用 JQuery 将子数组添加到 JSON?

发布于 2024-12-03 19:49:37 字数 634 浏览 1 评论 0原文

我正在尝试创建一个 JSON 对象,如下所示:

var request = {
    location : pyrmont,
    radius : '50000',
    types: ['amusement_park', 'store'] //Here I want to replace with a javascript array 
};

此 JSON 作为 Google 地图 API 的输入工作正常,但是当我尝试替换为 一个 javascript 数组本身就失败了。任何帮助表示赞赏!

var allVals = [];
$('#geo_form :checked').each(function() {
  allVals.push("'" + $(this).val() + "'");
});
alert("allVals -> " + allVals);  //allVals -> 'amusement_park','lodging'

var request = {
    location : pyrmont,
    radius : '50000',
    //types: ['amusement_park', 'store']
    types: [allVals]
};

I'm trying to create a JSON object as follows:

var request = {
    location : pyrmont,
    radius : '50000',
    types: ['amusement_park', 'store'] //Here I want to replace with a javascript array 
};

This JSON works fine as an input to the Google Maps API but when I try to replace with
a javascript array as such it fails. Any help is appreciated!

var allVals = [];
$('#geo_form :checked').each(function() {
  allVals.push("'" + $(this).val() + "'");
});
alert("allVals -> " + allVals);  //allVals -> 'amusement_park','lodging'

var request = {
    location : pyrmont,
    radius : '50000',
    //types: ['amusement_park', 'store']
    types: [allVals]
};

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千年*琉璃梦 2024-12-10 19:49:37

allVals 已经是一个数组,您不需要将其放在 request 对象中的括号中。通过将数组括在括号中,您可以将 allVals 数组设置为新数组的最零索引。

var request = {
    location : pyrmont,
    radius : '50000',
    types: allVals
};

此外,当您将值推送到数组时,不需要将值括在引号中,因为它已经是一个 String 对象。

事实上,您可以通过最初在请求对象内创建一个空数组并通过直接访问属性推送到该对象来避免在请求对象外部声明变量。

示例:

var request = {
    types : []
};
request.types.push($(this).val());

对于大多数数据结构问题,明智的做法是将对象打印到控制台调试器以查看对象中包含哪些值。 Firefox有流行的firebug,Chrome、Opera和新版本的IE都内置了控制台调试器。使用方法console.log(arg)来打印。

allVals is already an array, you don't need to wrap it in brackets in the request object. By wrapping the array in brackets you set the allVals array as the zero most index of a new array.

var request = {
    location : pyrmont,
    radius : '50000',
    types: allVals
};

Also, you don't need to wrap the value in quotes when you push it on to the array as it is already a String object.

In fact, you could avoid declaring a variable outside of the request object by creating an empty array within the request object initially and push onto the object by directly accessing the property.

Example:

var request = {
    types : []
};
request.types.push($(this).val());

For most data structure issues, it is wise to print the object to the console debugger to see what values are contained within the object. Firefox has the popular firebug, Chrome, Opera, and new versions of IE have a console debugger built in. use the method console.log(arg) to print.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文