小编And*_*ndy的帖子

检查Javascript对象数组中是否存在对象值,如果没有向数组添加新对象

如果我有以下对象数组:

[ { id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 2, username: 'ted' } ]
Run Code Online (Sandbox Code Playgroud)

有没有办法循环遍历数组,以检查特定的用户名值是否已经存在,如果它什么都不做,但是如果它没有用所述用户名(和新的ID)将新对象添加到数组?

谢谢!

javascript arrays foreach for-loop object

109
推荐指数
7
解决办法
19万
查看次数

document.querySelector(...)为null错误

对于cakephp项目中的图像上传,我使用了java-script.I在app\View\Layouts中添加了这个js文件default.ctp

js代码

document.querySelector('input[type=file]').addEventListener('change', function(event){

  var files = event.target.files;

  for (var i = 0; i < files.length; i++) {

    if (files[i].type.match(/image.*/)) {

        var reader = new FileReader();
        reader.onload = function (readerEvent) {
            var image = new Image();
            image.onload = function (imageEvent) {

                var imageElement = document.createElement('div');
                imageElement.classList.add('uploading');
                imageElement.innerHTML = '<span class="progress"><span></span></span>';
                var progressElement = imageElement.querySelector('span.progress span');
                progressElement.style.width = 0;
                document.querySelector('form div.photos').appendChild(imageElement);


                var canvas = document.createElement('canvas'),
                    max_size = 1200,
                    width = image.width,
                    height = image.height;
                if (width > height) {
                    if (width …
Run Code Online (Sandbox Code Playgroud)

javascript cakephp

21
推荐指数
3
解决办法
4万
查看次数

百分号R

我最近阅读了一个名为'pathifier'的R包的一些源代码.在源代码中,它使用百分号.

if (0 %in% xs) {
si <- NULL
cat(file = logfile, append = TRUE, "skipping pathway ", 
i, " (0 in xs)\n")
}
Run Code Online (Sandbox Code Playgroud)

%in%这个功能意味着什么?它只是意味着常规'in'吗?

r

8
推荐指数
2
解决办法
9163
查看次数

在javascript中找到数组的中值(8个值或9个值)

如何在javascript中找到数组的中值

这是我的阵列

var data = [       
    { values: 4 }, 
    { values: 4 }, 
    { values: 4 }, 
    { values: 5 }, 
    { values: 2 }, 
    { values: 6 }, 
    { values: 6 },
    { values: 5 }
];
Run Code Online (Sandbox Code Playgroud)

我试过这段代码

 function findMedian(m) {
        var middle = m.length - 1 / 2;
        if (m.length - 1 % 2 == 1) {
            return m[middle];
        } else {
            return (m[middle - 1] + m[middle]) / 2.0;
        }

    }
Run Code Online (Sandbox Code Playgroud)

但它的回报NaN价值

我的计算公式是

找到数据的中位数.按升序排列数据.然后,在计算中位数时标记我们考虑其值的地方.

javascript arrays jquery

8
推荐指数
3
解决办法
1万
查看次数

“路由器”不能用作 JSX 组件

错误信息

'Router' cannot be used as a JSX component.
  Its return type 'void' is not a valid JSX element.  TS2786

 import App from './App';
    5 | 
  > 6 | ReactDOM.render(<Router />, document.getElementById('root'));
Run Code Online (Sandbox Code Playgroud)

索引.tsx 代码

ReactDOM.render(<Router />, document.getElementById('root'));
Run Code Online (Sandbox Code Playgroud)

Router.tsx 代码

import React from 'react';
import { BrowserRouter, Switch, Route } from 'react-router-dom';
import App from './App';

export default function Routes() {
  <>
    <BrowserRouter>
      <Switch>
        <Route exact path="/" component={App} />
      </Switch>
    </BrowserRouter>
  </>;
}
Run Code Online (Sandbox Code Playgroud)

tsconfig

{
  "compilerOptions": {
    "target": "es6",
    "lib": ["dom", …
Run Code Online (Sandbox Code Playgroud)

javascript typescript reactjs react-router

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

如何在JS中编写一个函数来返回单词的缩写?

例如:

makeAbbr('central processing unit') === 'CPU'
Run Code Online (Sandbox Code Playgroud)

我找不到我的错误。我感谢您的帮助。

makeAbbr('central processing unit') === 'CPU'
Run Code Online (Sandbox Code Playgroud)

javascript abbreviation

7
推荐指数
1
解决办法
1143
查看次数

为什么在此自定义过滤器中没有调用“doesFilterPass”

据我了解,当filterChangedCallback被调用时,网格会过滤当前数据并调用doesFilterPass,并isFilterActive这样做。

这里我有一个使用自定义过滤器和浮动过滤器的列。浮动过滤器(一个复选框)显示正常,当我onFloatingFilterChanged在调用自定义过滤器中单击它时,会出现绿色过滤器活动图标,网格会刷新,但doesFilterPass根本不会被调用,我无法弄清楚为什么。

有一些基本的东西我没有通过自定义过滤器得到,所以如果有人能阐明这一点,我将不胜感激。

(编辑:这可能是有问题的自定义/浮动过滤器之间的相互作用。去年在 github 上发布了类似的 ag-grid-angular 问题,但没有任何结果。所以也许这是一个错误?)

定制过滤器

export default class BooleanFilter {

  init(params) {
    this.params = params;
    this.valueGetter = params.valueGetter;
    this.filterChangedCallback = params.filterChangedCallback;
    this.status = false;
  }

  onFloatingFilterChanged(status) {
    this.status = status;
    this.filterChangedCallback();
  }

  getGui() {
    return '<div />';
  }

  getModel() {
    return this.isFilterActive() ? { filterType: 'boolean', filter: this.status } : undefined;
  }

  setModel(model) {
    this.state.status = model ? model.value : '';
  }

  isFilterActive() { …
Run Code Online (Sandbox Code Playgroud)

ag-grid-react

6
推荐指数
0
解决办法
1995
查看次数

React JS 意外的保留字“await”

我正在努力解决这个异步等待问题我已经创建了异步函数,为此我正在调用等待但我收到错误意外的保留字“等待” 下面是异步函数

export const addProductCall = async (product) => {
    let accessToken = window.localStorage.getItem("accessToken");
    await axios.post(SERVER_URI + '/inventoryservice/v1/item',
        product,
        { headers: { "Authorization": "Bearer " + accessToken, "Content-Type": "application/json" } })
}
Run Code Online (Sandbox Code Playgroud)

下面是我调用该函数的函数。

const handleSubmit = () => {
        const data = {
            'storeId': customerDetails.id, category, categoryToBeAdded, description,
            productCode, productName, sku, price, unit, quantity
        }
        await addProductCall(data);
    }
Run Code Online (Sandbox Code Playgroud)

javascript async-await

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

在循环中声明谷歌地图标记

我对谷歌地图标记上的事件监听器有一个奇怪的问题.基本上我想在循环中声明一堆标记,并让每个标记都有一个相关的infowindow.相关代码是:

var markers=[];
var contents = [];
var infowindows = [];


for (i = 0; i < 10; i++) { 

    markers[i] = new google.maps.Marker({
      position: new google.maps.LatLng(40+Math.random()*5, 4+Math.random()*5),
      map: map,
      title: 'samplemarker'
    });

    contents[i] = '<div class="popup_container">' +
    '</div>';


    infowindows[i] = new google.maps.InfoWindow({
    content: contents[i],
    maxWidth: 300
    });

    google.maps.event.addListener(markers[i], 'click', function() {
            infowindows[i].open(map,markers[i]);
            map.panTo(markers[i].getPosition());
    });  
}
Run Code Online (Sandbox Code Playgroud)

标记是正确创建的,也是infowindows,因为如果我手动执行infowindows[i].open(map,markers[i]);它们就会正确打开.然而,听众不起作用.

甚至更奇怪:我有另一个标记,在for循环之外声明的"marker_1",完全相同的方式.如果我写:

google.maps.event.addListener(marker_1, 'click', function() {
        infowindows[0].open(map,markers[0]);
        map.panTo(markers[0].getPosition());
});
Run Code Online (Sandbox Code Playgroud)

打开infowindow 0并在单击marker_1时将地图平移到标记0.然而,当写入时,在完全相同的位置,除了用marker [0]替换的marker_1之外的相同行,点击标记0完全没有效果.

感谢您的帮助,如果这是愚蠢的话,对不起!

javascript google-maps google-maps-api-3 google-maps-markers

5
推荐指数
1
解决办法
6485
查看次数

(ReactJS)“警告:组件正在将不受控制的输入更改为受控制。这可能是由未定义的值更改引起的......”

由另一个控制器控制的用户窗体在控制台上抱怨为

“警告:组件正在将不受控的输入更改为受控。这可能是由于值从未定义的值更改为已定义的值引起的,这种情况不应该发生。在组件的生命周期内决定使用受控或不受控的输入元素。更多信息: https: //reactjs.org/link/control-components 输入跨度 li ul..."**

这是组件代码:

export default({user}) => {
  if(!user) {
    return <div></div>
  } else {
    const [name,setName] = useState(user.name|| "")
    useEffect(() => {
      setName(user.name);
    }, [user])
              
    return <form>
             <fieldset> 
               <legend> Edit  {user.name }</legend>
               <p> 
                 <label htmlFor={"name"}> Name  </label>
                 <input  id="name" value={name || ""} onChange={e => setName(e.target.value)} />
               </p> 
             </fieldset>
           </form>
  }
}
Run Code Online (Sandbox Code Playgroud)

我尝试了其他 stackoverflow 答案中建议的所有修复,但仍然发出警告。
我可能缺少什么吗?

javascript warnings userform reactjs react-component

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