Javascript 数组处理,Firefox 和 Chrome 之间的差异

Javascript array handling, differences between Firefox and Chrome

我遇到了 Firefox 和 Chrome 在解释数组时表现不同的问题。 该数组是从一个 select 元素生成的,该元素可以有多个选项。

var asset = {};

var fCategories = []; //List of category values
$('#selectCategory option:selected').each(function() {
  fCategories.push($(this).val());
});
if (fCategories.length === 1 && fCategories[0] != "null") {
  asset.Asset_Category_id = fCategories[0];
}
if (fCategories.length > 1) {
  asset.category_list = fCategories.join(",");
}


console.log(asset);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="selectCategory" multiple="multiple">
  <option value="null">Filter Category</option>
  <option selected value="3">Arc Welder</option>
  <option selected value="4">Bench Grinder.</option>
  <option value="41">cables</option>
</select>

生成的资产类别 ID 或类别列表用作调用 Web 服务的参数。 以下结果针对单个选项 selected 和两个选项 selected.

Firefox 提供: details: {"Asset_Category_id":"4"}details: {"category_list":"3,4"}

Chrome 给出: details: {"Asset_Category_id":["3"]}details: {"Asset_Category_id":["3","4"]}

这是不对的。

浏览器版本是 火狐 70.0.1(64 位) Chrome 版本 78.0.3904.97(正式版)(64 位)

我曾希望在键入此代码时发现代码问题,但没有成功,所以我非常感谢 Whosebug 社区的意见。

我已经解决了这个问题。问题是 Chrome 缓存了 javascript 代码的过时版本。 我不是普通 Chrome 用户,我不知道 f5 刷新不会重新加载代码。