GVKun编程网logo

用于在JSON数组中查找元素的索引(用于在json数组中查找元素的索引是)

10

此处将为大家介绍关于用于在JSON数组中查找元素的索引的详细内容,并且为您解答有关用于在json数组中查找元素的索引是的相关问题,此外,我们还将为您介绍关于34.在排序数组中查找元素的第一个和最后一个

此处将为大家介绍关于用于在JSON数组中查找元素的索引的详细内容,并且为您解答有关用于在json数组中查找元素的索引是的相关问题,此外,我们还将为您介绍关于34. 在排序数组中查找元素的第一个和最后一个位置、javascript – 视口 – 用于在视口中查找元素的jQuery选择器、JsonPath:按字段在数组中查找元素、js中查找元素的方法的有用信息。

本文目录一览:

用于在JSON数组中查找元素的索引(用于在json数组中查找元素的索引是)

用于在JSON数组中查找元素的索引(用于在json数组中查找元素的索引是)

我有一个看起来像这样的表:

CREATE TABLE tracks (id SERIAL,artists JSON);

INSERT INTO tracks (id,artists) 
  VALUES (1,'[{"name": "blink-182"}]');

INSERT INTO tracks (id,artists) 
  VALUES (2,'[{"name": "The Dirty Heads"},{"name": "Louis Richards"}]');

还有其他几列与此问题无关。将它们存储为JSON是有原因的。

我想做的是查找具有特定 艺术家姓名 (精确匹配)的曲目。

我正在使用此查询:

SELECT * FROM tracks 
  WHERE 'ARTIST NAME' IN
    (SELECT value->>'name' FROM json_array_elements(artists))

例如

SELECT * FROM tracks
  WHERE 'The Dirty Heads' IN 
    (SELECT value->>'name' FROM json_array_elements(artists))

但是,这会进行全表扫描,而且速度不是很快。我尝试使用function创建一个GIN索引names_as_array(artists),并使用'ARTIST NAME' = ANY names_as_array(artists),但是未使用该索引,查询实际上要慢得多。

34. 在排序数组中查找元素的第一个和最后一个位置

34. 在排序数组中查找元素的第一个和最后一个位置

给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。

你的算法时间复杂度必须是 O(log n) 级别。

如果数组中不存在目标值,返回 [-1, -1]。

示例 1:

输入: nums = [5,7,7,8,8,10], target = 8 输出: [3,4] 示例 2:

输入: nums = [5,7,7,8,8,10], target = 6 输出: [-1,-1]

  • 根据有序序列且时间复杂度为 O(logN) 可以考虑二分法来求解此题

分析题目:

  1. 此数组是个有序升序整数数组
  2. 需要找到与 target 值相同的值的开始位置和结束位置
  3. 通过有序升序数组,可以得知当找到一个与 target 相同的值的开始位置,其结束位置应该是开始位置+1
  4. 故此题可以通过二分法遍历找到第一个与 target 相同值的位置,结束位置为位置+1
def search_first_last_element(nums, target):
        """ 首先考虑最坏情况 """
        if len(nums) == 0:
            return [-1, -1]
        elif target < nums[0] or target > nums[len(nums) - 1]:
            return [-1, -1]
        else:
            low, high = 0, len(nums) - 1
            while low <= high:
                mid = (low + high) // 2
                if nums[mid] < target:
                    low = mid + 1
                elif nums[mid] > target:
                    high = mid - 1
                elif nums[mid] == target:
                    low = high = mid
                    while low - 1 >= 0 and nums[low - 1] == target:
                        low = low - 1
                    while high + 1 <= len(nums) - 1 and nums[high + 1] == target:
                        high = high + 1
                    return [low, high]
        return [-1, -1]

javascript – 视口 – 用于在视口中查找元素的jQuery选择器

javascript – 视口 – 用于在视口中查找元素的jQuery选择器

在我的项目中,每个div都有一个视频,所以我试图检查一个div是否在视口中,所以如果是该视频开始播放,如果它不是暂停或停止.我是jusing jekyll.
例如,我只有一个div的HTML代码如下所示:

<div>
            <div>
            <input type="button" id="play" value="Play"></input>
            <input type="button" id="pause" value="Pause"></input>
            <br/><br/>
                <div>
                    <hrhttps://www.jb51.cc/tag/heading/" target="_blank">heading-spacer">
                    <div></div>
                    <h2https://www.jb51.cc/tag/heading/" target="_blank">heading">Vjetersia</h2>
                    <div><p> Vjetersia</p></div>
                </div>
                <div>
                  <divid="">
                    <video preload="none" loop="loop">
                        <source type="video/webm" src="all_files/1.webm" />
                    </video>
                    <img src="example.png" alt="Animated Gif" />
                </div>
                </div>
                <div></div>
            </div>
        </div>

我尝试按下按钮并执行它:

$( document ).ready(function() {
        player = new GifvPlayer();
        $("#play").click(function() {
            $('.gifv-player').find('video').show();
            $('.gifv-player').find('video')[0].play();
        });
        $("#pause").click(function() {
            $('.gifv-player').find('video')[0].pause();
        });
    });

但我如何修改它,以便它可以漫步,如果div可见,开始播放其视频?有帮助吗?

解决方法

如何实现它的简单快速和肮脏的例子.像改变div的颜色一样播放/暂停… http://jsfiddle.net/7mkdj4ak/1/

var scrollPosition = $(window).scrollTop();
var windowViewHeight = $(window).height();
var videoWrapHeight = $('.container').outerHeight();

$(window).on('scroll',function(){
    scrollPosition = $(window).scrollTop();
    playVideos(scrollPosition);
});

$(window).on('resize',function(){
    windowViewHeight = $(window).height();
});


var playVideos = function(scrollPosition) {
    $('.container').each(function(i){
        var thisContainerTopPosition = $(this).offset().top;
        var thisContainerBottomPosition = thisContainerTopPosition + videoWrapHeight;
        if( 
            thisContainerTopPosition >= scrollPosition && 
            thisContainerBottomPosition <= (scrollPosition + windowViewHeight ) 
        ) {
            /* div is in view PLaY */
            $(this).css('background-color','orange');
        } else {
            /* div is out of view PausE */
            $(this).css('background-color','#afafaf');
        }
    });
};


playVideos(scrollPosition);
.container {
        width: 100%;
        height: 100px;
        background-color: #afafaf;
        margin: 20px 0;
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div>
        <h1>my Video 1</h1>
    </div>
    <div>
        <h1>my Video 2</h1>
    </div>
    <div>
        <h1>my Video 3</h1>
    </div>
    <div>
        <h1>my Video 4</h1>
    </div>

JsonPath:按字段在数组中查找元素

JsonPath:按字段在数组中查找元素

问题有点模棱两可,但是语法不正确,Json path语法使用Groovy's GPath表示法

js.getString("find {it.name == 'David'}")
,

您可能需要

$.[?(@.name == 'David')]

=>  $.data[?(@.name == 'David')]
    $.response[?(@.name == 'David')]
    $.body[?(@.name == 'David')]
    ...

名称取决于您提取回复的时间

,

因为您正在使用json Array, 确实使用-$ [0], 因为大卫在第一个索引上。

js中查找元素的方法

js中查找元素的方法

javascript 中查找元素的方法有:getelementbyid(id):使用元素 id 查找元素。getelementsbyclassname(classname):使用类名查找元素。getelementsbytagname(tagname):使用标签名称查找元素。queryselectorall(selector):使用 css 选择器查找元素。queryselector(selector):使用 css 选择器查找第一个匹配的元素。

js中查找元素的方法

JavaScript 查找元素的方法

在 JavaScript 中,有以下几种常见的方法可用于查找元素:

1. getElementById(id):
使用元素的唯一 ID 属性查找元素。它返回具有指定 ID 的第一个元素。

示例:

const element = document.getElementById(''myElement'');
登录后复制

2. getElementsByClassName(className):
使用元素的类名属性查找元素。它返回具有指定类名的所有元素的集合。

示例:

const elements = document.getElementsByClassName(''myClass'');
登录后复制

3. getElementsByTagName(tagName):
使用 HTML 标签名称查找元素。它返回具有指定标签的所有元素的集合。

示例:

const elements = document.getElementsByTagName(''p'');
登录后复制

4. querySelectorAll(selector):
一个通用的查找方法,它使用 CSS 选择器从文档中查找元素。它返回与选择器匹配的所有元素的集合。

示例:

const elements = document.querySelectorAll(''.myClass p''); // 选择带有 myClass 类名的段落
登录后复制

5. querySelector(selector):
与 querySelectorAll 类似,但它只返回与选择器匹配的第一个元素。

示例:

const element = document.querySelector(''.myClass'');
登录后复制

其他方法:

  • document.forms:获取表单集合。
  • document.images:获取图像集合。
  • document.links:获取链接集合。

以上就是js中查找元素的方法的详细内容,更多请关注php中文网其它相关文章!

关于用于在JSON数组中查找元素的索引用于在json数组中查找元素的索引是的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于34. 在排序数组中查找元素的第一个和最后一个位置、javascript – 视口 – 用于在视口中查找元素的jQuery选择器、JsonPath:按字段在数组中查找元素、js中查找元素的方法的相关信息,请在本站寻找。

本文标签: