Tag: 数组

使用匹配值对JSON键进行排序和合并

我的JSON看起来像这样: json = [ { type: “big” date: “2012-12-08” qty: 6 } { type: “small” date: “2012-12-08” qty: 9 } { type: “big” date: “2012-12-15” qty: 4 } { type: “small” date: “2012-12-07” qty: 7 } { type: “small” date: “2012-11-07” qty: 3 } ] 我要做的是分组/合并每个具有相同年份和月份的date字符串中的前7个字符)并获得这些qty的总和。 输出应如下所示: json = [ { type: “big” date: “2012-12” […]

仅推送数组中的唯一元素

我有数组对象(x)存储json(键,值)对象。 我需要确保x只使用具有唯一键的json对象。 下面,示例’id’是键,因此我不想使用’item1’键存储其他json对象。 x = [{“id”:”item1″,”val”:”Items”},{“id”:”item1″,”val”:”Items”},{“id”:”item1″,”val”:”Items”}] var clickId = // could be “item1”, “item2″…. var found = $.inArray(clickId, x); // if(found >=0) { x.splice(found,1); } else{ x.push(new Item(clickId, obj)); //push json object }

PHP / jQuery – 如何将多维PHP数组转换为JSON字符串?

正如标题所述,我正在尝试使用Bootstrap的Typeahead.js,它需要一个像这样的JSON字符串 var subjects = [‘PHP’, ‘MySQL’, ‘SQL’, ‘PostgreSQL’, ‘HTML’, ‘CSS’, ‘HTML5’, ‘CSS3’, ‘JSON’]; 但是我有一个多维数组,在执行json_encode时会返回以下内容 [{“username”:”Test1″},{“username”:”Test2″},{“username”:”Test3″},{“username”:”Test4″},{“username”:”Test5″},{“username”:”Test6″}] 当我尝试使用此数组时,Typeahead.js会抛出错误。 我如何将多维转换为示例? 原始PHP数组 Array ( [0] => Array ( [username] => Test1 ) [1] => Array ( [username] => Test2 ) [2] => Array ( [username] => Test3 ) [3] => Array ( [username] => Test4 ) [4] => Array […]

根据另一个值存储数组的项目

我有一个名为catalog的数组,它包含4个项目: packageid,dataid,categoryid和datapackage。 我想要做的是将数据packageid的packageid等于packageBtnFilter且其categoryid等于categoryBtnFilter的项的所有数据集推入数组dataid 。 如果packageBtnFilter和categoryBtnFilter的值都为0,那么它应该将catalog的所有dataid都推送到dataids数组中。 目前它只是推送packageid等于3的项的数据。 var packageBtnFilter = $(‘#packages’).val(); var categoryBtnFilter = $(‘#categories’).val(); var dataids = new Array(); $(catalogue).each(function () { if (this.packageid == 3) dataids.push(this.dataid); }); 谢谢! 完整的代码在这里http://jsfiddle.net/hunter/Tcwgf/1/

我应该使用jQuery.inArray()吗?

我在对象数组中进行非常频繁的搜索,并且一直在使用jQuery.inArray()。 但是,我有速度和内存问题,根据我的探查器,最常用的方法之一是jQuery.inArray()。 大街上的表现是什么? 我应该切换到简单的for循环吗? 我的具体function是: function findPoint(point, list) { var l = list.map(function anonMapToId(p) { return p.id }); var found = jQuery.inArray(point.id, l); return found; } 可能是list.map()更list.map()责备吗?

JS – jQuery inarray ignoreCase()并包含()

好吧,我更像是一个PHP人员,除了简单的设计相关操作之外,我的JS技能几乎没有任何JS,所以如果我问明显的话,请原谅。 以下操作在PHP中是轻而易举的(也可能在JS中 – 但我在这里使用不熟悉的语法…) 这是某种输入validation var ar = [“BRS201103-0783-CT-S”, “MAGIC WORD”, “magic”, “Words”, “Magic-Word”]; jQuery(document).ready(function() { jQuery(“form#searchreport”).submit(function() { if (jQuery.inArray(jQuery(“input:first”).val(), ar) != -1){ jQuery(“#contentresults”).delay(800).show(“slow”); return false; } 这个问题有两个部分。 1 – 如何使数组不区分大小写? 例如 – BRS201103-0783-CT-S将给出与brs201103-0783-ct-s和Brs201103-0783-CT-s或MAGIC magic Magic MaGIc相同的结果 基本上我需要一些像ignoreCase()的数组,但我找不到任何在jQuery和JS中的引用… 我试过toLowerCase() – 但是它没有在数组上工作(ittirating ??)而且,它会解决混合情况吗? 2 – 如何使function仅识别元素的部分或组合? 例如 – 如果只输入”word” ,我希望它作为”words”传递,如果有人输入”some word”它应该通过(包含“单词”)

检索后期数组值

我有一个使用jQuery发送所有数据的表单.serialize()在表单中有四个arrays qty[], etc它将表单数据发送到sendMail页面,我想从数组中取回发布的数据。 我试过了: $qty = $_POST[‘qty[]’]; foreach($qty as $value) { $qtyOut = $value . “”; } 并尝试了这个: for($q=0;$q<=$qty;$q++) { $qtyOut = $q . "”; } 这是正确的方法吗?

循环遍历数组并作为对输出(每个第二个元素的分隔符)

我有一个匿名元素的数组。 元素通过php添加到数组中,如下所示: $playlist = array(); while (databaseloop) { $playlist[] = $a_title; $playlist[] = $a_length; } echo json_encode(array(‘playlist’=>$playlist)); 所以数组变成: [“Hello.mp3”, “00:00:14”, “Byebye.mp3”, “00:00:30”, “Whatsup.mp3”, “00:00:07”, “Goodnight.mp3”, “00:00:19”] and so on 然后我用ajax post在jquery中检索这个数组。 一切正常。 现在,我正在寻找一种在javascript / jquery中将所有数组元素作为对处理/输出的方法。 为每个第二个元素“做点什么”。 像这样: foreach (two_elements_in_array) { // output track name // output track time // output some divider } 如何才能做到这一点?

jQuery每个总是排序吗?

我在JS中有这个对象: var list = {134 : “A”,140 : “B”,131 : “C”} 我运行它: jQuery.each(list, function(key, value) { console.log(key + ” – ” + value); }); 输出应该是: 134 – A 140 – B 131 – C 但我不知道为什么,输出是: 131 – C 134 – A 140 – B 知道我该如何修复它?

无法从jquery对象调用的Javascript方法?

我正在阅读学习jQuery 1.3(Jonathan Chaffer和Karl Swedberg),在排序表时,他们在调用.sort()之前使用了.get() .sort() ,并说 我们需要将jQuery对象转换为DOM节点数组。 尽管jQuery对象在很多方面都像数组一样,但它们没有任何可用的本机数组方法,例如.sort()。 码: $(“#sort”).click(function() { var posts = $(“#posts_div .post”); posts.sort(function(a, b) { return ($(a).text()) > ($(b).text()); }); $.each(posts, function(index, post) { $(“#posts_div”).append(post); }); });​ 所以我尝试在不使用.get()情况下完成它,但是即使没有.get()和最新的jQuery,它也很有用,但是不能用于1.3 所以做了一些小提琴来说清楚 **不使用.get() jquery 1.2.6 ** 使用.get() jquery 1.2.6 在没有.get()情况下工作jquery 1.7.2 使用.get() jquery 1.7.2 所以很明显早期的jQuery对象以前没有.sort()函数与Javascript数组相同? 但现在他们有…… 所以我的问题是jQuery对象还没有支持哪些function,所以我们可以记住在使用之前转换为Javascript数组?