此处将为大家介绍关于用于在JSON数组中查找元素的索引的详细内容,并且为您解答有关用于在json数组中查找元素的索引是的相关问题,此外,我们还将为您介绍关于34.在排序数组中查找元素的第一个和最后一个
此处将为大家介绍关于用于在JSON数组中查找元素的索引的详细内容,并且为您解答有关用于在json数组中查找元素的索引是的相关问题,此外,我们还将为您介绍关于34. 在排序数组中查找元素的第一个和最后一个位置、javascript – 视口 – 用于在视口中查找元素的jQuery选择器、JsonPath:按字段在数组中查找元素、js中查找元素的方法的有用信息。
本文目录一览:- 用于在JSON数组中查找元素的索引(用于在json数组中查找元素的索引是)
- 34. 在排序数组中查找元素的第一个和最后一个位置
- javascript – 视口 – 用于在视口中查找元素的jQuery选择器
- JsonPath:按字段在数组中查找元素
- js中查找元素的方法
用于在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. 在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 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) 可以考虑二分法来求解此题
分析题目:
- 此数组是个有序升序整数数组
- 需要找到与 target 值相同的值的开始位置和结束位置
- 通过有序升序数组,可以得知当找到一个与 target 相同的值的开始位置,其结束位置应该是开始位置+1
- 故此题可以通过二分法遍历找到第一个与 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选择器
例如,我只有一个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可见,开始播放其视频?有帮助吗?
解决方法
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:按字段在数组中查找元素
问题有点模棱两可,但是语法不正确,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中查找元素的方法
javascript 中查找元素的方法有:getelementbyid(id):使用元素 id 查找元素。getelementsbyclassname(classname):使用类名查找元素。getelementsbytagname(tagname):使用标签名称查找元素。queryselectorall(selector):使用 css 选择器查找元素。queryselector(selector):使用 css 选择器查找第一个匹配的元素。
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中查找元素的方法的相关信息,请在本站寻找。
本文标签: