【问题标题】:javascript indexOf Array Different Result on browser浏览器上的javascript indexOf Array不同的结果
【发布时间】:2015-05-28 03:32:03
【问题描述】:

这是我的sn-p

var arrays = [
  ['name1', -10, 100, 1, 'abc', 'xxx'],
  ['name1', -10, 100, 1, 'abc', 'xxx'],
  ['name2', -8, 80, 1, 'bbb', 'zzz'],
  ['name1', -10, 100, 1, 'abc', 'xxx']
];

$('#searchsite').keyup(function() {
  var keyword = $(this).val();
  var minlength = 3;
  var result = [];
  if (keyword.length >= minlength) {
    for (var i = 0; i < arrays.length; i++) {
      if (arrays[i][0].toLowerCase().indexOf(keyword) !== -1) {
        result.push('<input type="button" name="button" class="btn btn-danger" value="' + arrays[i][0] + '"><br>');
      }
    }
    resultunique = jQuery.unique(result);
    $('#searchresult').html(resultunique);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="searchsite" />
<div id="searchresult"></div>

在 Firefox 和 chrome 上获得不同结果的任何原因

【问题讨论】:

  • 请告诉我们您在这两种不同浏览器上获得的结果。
  • 请参阅 Jonathan M. 下面的评论并感谢您的提问..
  • @ntaloventi 预期结果是什么?
  • 预期结果:firefox 浏览器仅像 chrome 一样显示独特

标签: javascript jquery arrays unique indexof


【解决方案1】:

您对$.unique() 的使用是错误的,它仅适用于 dom 元素。

描述:对 DOM 元素数组进行就地排序,使用 已删除重复项。请注意,这仅适用于 DOM 数组 元素,而不是字符串或数字。

由于您每次都创建一个新的input 元素标记,因此没有重复项。

你可以自己实现独特的逻辑

var arrays = [
  ['name1', -10, 100, 1, 'abc', 'xxx'],
  ['name1', -10, 100, 1, 'abc', 'xxx'],
  ['name2', -8, 80, 1, 'bbb', 'zzz'],
  ['name1', -10, 100, 1, 'abc', 'xxx']
];

$('#searchsite').keyup(function() {
  var keyword = $(this).val().toLowerCase();
  var minlength = 3;
  var result = [],
    keys = {};
  if (keyword.length >= minlength) {

    result = $.map(arrays, function(array) {
      var name = array[0].toLowerCase();
      if (!keys[name]) {
        keys[name] = true;

        if (name.indexOf(keyword) !== -1) {
          return '<input type="button" name="button" class="btn btn-danger" value="' + array[0] + '"><br>';
        }
      }

    })

    $('#searchresult').html(result.join(''));
  } else {
    $('#searchresult').html('');
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="searchsite" />
<div id="searchresult"></div>

【讨论】:

  • 上传图片需要信誉...请查看此链接link
  • 唯一码在哪里..?使用$('#searchresult').html(result.join(''));没有结果
猜你喜欢
  • 2012-05-15
  • 2016-03-18
  • 2019-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-09
  • 2014-10-04
相关资源
最近更新 更多