小编tri*_*cot的帖子

了解JavaScript中的原型继承

我是JavaScript OOP的新手.你能解释下面的代码块之间的区别吗?我测试了两个块都有效.什么是最佳实践,为什么?

第一块:

function Car(name){
    this.Name = name;
}

Car.prototype.Drive = function(){
    console.log("My name is " + this.Name + " and I'm driving.");
}

SuperCar.prototype = new Car();
SuperCar.prototype.constructor = SuperCar;

function SuperCar(name){
    Car.call(this, name);
}

SuperCar.prototype.Fly = function(){
    console.log("My name is " + this.Name + " and I'm flying!");
}

var myCar = new Car("Car");
myCar.Drive();

var mySuperCar = new SuperCar("SuperCar");
mySuperCar.Drive();
mySuperCar.Fly();
Run Code Online (Sandbox Code Playgroud)

第二块:

function Car(name){
    this.Name = name;
    this.Drive = function(){ 
        console.log("My name is " + this.Name + …
Run Code Online (Sandbox Code Playgroud)

javascript oop inheritance constructor prototype-programming

170
推荐指数
3
解决办法
5万
查看次数

如何计算列表中的唯一值

所以我试图让这个程序要求用户输入并将值存储在数组/列表中.
然后,当输入空行时,它将告诉用户这些值中有多少是唯一的.
我建立这是出于现实生活的原因而不是问题集.

enter: happy
enter: rofl
enter: happy
enter: mpg8
enter: Cpp
enter: Cpp
enter:
There are 4 unique words!
Run Code Online (Sandbox Code Playgroud)

我的代码如下:

# ask for input
ipta = raw_input("Word: ")

# create list 
uniquewords = [] 
counter = 0
uniquewords.append(ipta)

a = 0   # loop thingy
# while loop to ask for input and append in list
while ipta: 
  ipta = raw_input("Word: ")
  new_words.append(input1)
  counter = counter + 1

for p in uniquewords:
Run Code Online (Sandbox Code Playgroud)

..那就是我到目前为止所做的一切.
我不确定如何计算列表中唯一的单词数?
如果有人可以发布解决方案,以便我可以从中学习,或者至少告诉我它会如何变得更好,谢谢!

python arrays variables loops unique

100
推荐指数
7
解决办法
24万
查看次数

从JavaScript中的对象获取值

我有这个对象:

var data = {"id": 1, "second": "abcd"};
Run Code Online (Sandbox Code Playgroud)

这些是表格中的值.我将此传递给函数进行验证.

如果存在上述属性,我们可以使用data["id"]和获取它们的值data["second"],但有时,基于其他值,属性可以不同.

如何从data独立的属性名称中获取值?

javascript function object

60
推荐指数
5
解决办法
26万
查看次数

Mapbox GL JS getBounds()/ fitBounds()

我正在使用Mapbox GL JS v0.14.2并且我通过文档搜索了高低,并且很少有人清楚这一点.

如果您使用标准的JS API,那么使用他们提供的示例"非常适合使用贴图"(https://www.mapbox.com/mapbox.js/example/v1.0.0/fit-map-to - 标记/); 但是使用GL api时的设置是完全不同的.该GL API有getBounds()(https://www.mapbox.com/mapbox-gl-js/api/#Map.getBounds),而是因为你没有命名图层,像标准JS API,所以我挣扎找出如何使用getBounds().

我发现这个(Mapbox GL JS API Set Bounds)但肯定不是正确的答案?

这是我的大部分设置; 排除JSON设置和其他选项.

mapboxgl.accessToken = '<myaccesstoken>';

var markers = <?php echo $programme_json; ?>;

var map = new mapboxgl.Map({
    container: 'map',
    style: 'mapbox://styles/richgc/cikyo5bse00nqb0lxebkfn2bm',
    center: [-1.470085, 53.381129],
    zoom: 15
});

map.on('style.load', function() {
    map.addSource('markers', {
        'type': 'geojson',
        'data': markers
    });

    map.addLayer({
        "id": "markers",
        "interactive": true,
        "type": "symbol",
        "source": "markers",
        "layout": {
            "icon-image": "venue-map-icon-blue",
            'icon-size': 0.5, …
Run Code Online (Sandbox Code Playgroud)

javascript json mapbox

36
推荐指数
3
解决办法
2万
查看次数

Promise reject()导致"Uncaught(in promise)"​​警告

reject()调用promise 回调后,Chrome控制台中会显示警告消息"Uncaught(in promise)".我不能围绕它背后的原因,也不知道如何摆脱它.

var p = new Promise((resolve, reject) => {
  setTimeout(() => {
    var isItFulfilled = false
    isItFulfilled ? resolve('!Resolved') : reject('!Rejected')
  }, 1000)  
})

p.then(result => console.log(result))
p.catch(error => console.log(error))
Run Code Online (Sandbox Code Playgroud)

警告:

在此输入图像描述

编辑:

我发现如果onRejected没有向.then(onResolved, onRejected)方法显式提供处理程序,JS将自动提供隐式处理程序.它看起来像这样:(err) => throw err.自动生成的处理程序将依次抛出.

参考:

如果IsCallable(onRejected)`为false,那么
     让onRejected为" Thrower ".

http://www.ecma-international.org/ecma-262/6.0/index.html#sec-performpromisethen

javascript catch-block promise es6-promise

35
推荐指数
1
解决办法
2万
查看次数

指针比较在 C 中如何工作?可以比较不指向同一个数组的指针吗?

在 K&R(C 编程语言第 2 版)第 5 章中,我阅读了以下内容:

首先,在某些情况下可以比较指针。如果pq指向同一个数组的成员,则关系一样==!=<>=,等正常工作。

这似乎意味着只能比较指向同一数组的指针。

但是,当我尝试此代码时

    char t = 't';
    char *pt = &t;
    char x = 'x';
    char *px = &x;

    printf("%d\n", pt > px);
Run Code Online (Sandbox Code Playgroud)

1 被打印到屏幕上。

首先,我认为我会得到 undefined 或某种类型或错误,因为ptpx没有指向同一个数组(至少在我的理解中)。

也是pt > px因为两个指针都指向存储在栈上的变量,栈向下增长,所以内存地址t大于x?为什么pt > px是真的?

当 malloc 被引入时,我变得更加困惑。 同样在第 8.7 章的 K&R 中写到以下内容:

然而,仍然存在一种假设,即sbrk可以有意义地比较指向由 返回的不同块的指针。仅允许在数组内进行指针比较的标准并不能保证这一点。因此,这个版本的malloc仅在一般指针比较有意义的机器之间是可移植的。

将指向堆上 malloced …

c pointers heap-memory memory-layout undefined-behavior

35
推荐指数
3
解决办法
5731
查看次数

在ASP.NET Web API的JSON输出中没有时间的日期

是否有一种简单的方法来配置JSON.NET,以便某些 DateTime字段将被没有时间格式化,其他DateTime字段仍将按时间格式化?

例:

{ firstName: 'John', lastName : 'Doe', birthday: '1965-09-23' }
Run Code Online (Sandbox Code Playgroud)

datetime json json.net asp.net-web-api

28
推荐指数
2
解决办法
8911
查看次数

部署“react-admin”应用程序时,Heroku 服务器因“JavaScript 堆内存不足”而崩溃

我目前正在使用“react-admin”开发一个管理面板,它在我的本地运行良好,但是一旦我将应用程序上传到 Heroku,构建就会失败并出现以下错误:“致命错误:接近堆限制的无效标记压缩分配失败 - JavaScript 堆内存不足”

import { Admin } from 'react-admin';通过设置一个只有“react-admin”包和一个简单的 Admin 导入的干净项目来将问题缩小到最初的问题。一旦我尝试使用该组件,部署就会失败,并显示“堆内存不足”错误。

有没有其他人遇到过这个问题?

这是我的 package.json:

{
  "name": "mrewards_admin",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "axios": "^0.19.0",
    "deepmerge": "^4.2.2",
    "prop-types": "^15.7.2",
    "react": "^16.12.0",
    "react-admin": "^3.0.2",
    "react-dom": "^16.12.0",
    "react-scripts": "3.2.0"
  },
  "engines": {
    "node": "13.0.1"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [ …
Run Code Online (Sandbox Code Playgroud)

memory heap-memory heroku node.js react-admin

23
推荐指数
4
解决办法
1万
查看次数

点击触发Mouseleave

我有一个绝对定位的div,我试图跟踪鼠标何时移动它以及鼠标何时离开.不幸的是,单击框中的文本偶尔会触发mouseleave事件.

演示:js小提琴

我怎么能阻止这个?

JS

let tooltip = document.createElement('div');
tooltip.innerHTML = 'HELLO WORLD';
tooltip.setAttribute('class', 'tooltip');
tooltip.style.display = 'none';

tooltip.onclick = evt => {
    console.log('click')
    evt.stopPropagation();
}
tooltip.ondblclick = evt => {
    console.log('double click')
    evt.stopPropagation();
}

tooltip.onmouseenter = () => {
    console.log('tooltip mouse OVER');
}

tooltip.onmouseleave = () => {
    console.log('tooltip mouse OUT')
}

tooltip.style.left = '290px';
tooltip.style.top = '50px';
tooltip.style.display = 'block';
document.body.appendChild(tooltip);
Run Code Online (Sandbox Code Playgroud)

HTML

<div style="width: 300px; height: 300px; background-color: lightblue">

</div>
Run Code Online (Sandbox Code Playgroud)

CSS

.tooltip {
    position: absolute;
    /*display: none;*/
    left: …
Run Code Online (Sandbox Code Playgroud)

javascript dom google-chrome mouseevent

19
推荐指数
2
解决办法
3702
查看次数

包含对象的两个数组的差异和交集

我有两个数组list1,list2其中包含具有某些属性的对象; userId是Id还是唯一属性:

list1 = [
    { userId: 1234, userName: 'XYZ'  }, 
    { userId: 1235, userName: 'ABC'  }, 
    { userId: 1236, userName: 'IJKL' },
    { userId: 1237, userName: 'WXYZ' }, 
    { userId: 1238, userName: 'LMNO' }
]

list2 = [
    { userId: 1235, userName: 'ABC'  },  
    { userId: 1236, userName: 'IJKL' },
    { userId: 1252, userName: 'AAAA' }
]
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种简单的方法来执行以下三个操作:

  1. list1 operation list2 应该返回元素的交集:

    [
        { userId: 1235, userName: 'ABC'  },
        { userId: 1236, userName: 'IJKL' …
    Run Code Online (Sandbox Code Playgroud)

javascript arrays set-difference set-operations set-intersection

16
推荐指数
4
解决办法
2万
查看次数